Який найкращий спосіб передавати SSH на машини в локальній мережі?


61

У мене є 2 комп’ютери, один, який я використовую, і один для дітей. Я хочу мати можливість схилитись до свого комп'ютера, щоб керувати ним (як, наприклад, вимкнути його тощо), але мені цікаво найкращий спосіб зробити це. Ми обоє перебуваємо в одному будинку і ділимося тим самим підключенням до Інтернету.

Який був би найкращий спосіб зробити це? З дослідження я читав, щоб встановити openssh-сервер на віддалений комп'ютер, але натрапив на те, що використовувати для імені хоста при спробі підключення. Зазвичай для VPS це зовнішній IP, але оскільки ми обидва ділимося Wi-Fi, чи буде це апаратним IP? Чи повинні ми спілкуватися безпосередньо через локальну мережу чи через Інтернет?

Відповіді:


58

Виконати:

avahi-browse -tl _workstation._tcp

Щоб отримати список робочих станцій Ubuntu в локальній мережі, ви можете підключитися до них за допомогою запуску:

ssh <username>@<computer-name>.local

7
Примітка: для цього avahi-browseвам потрібно буде встановити avahi-utilsпакет (який також залучатиметься avahi-daemon, послуга, що надає .local addressability).
Пісквор

2
@Piskvor Добре. Цей пакет вже встановлений за замовчуванням у Ubuntu Desktop, але я не знаю про інші смаки (kubuntu, lubuntu тощо). Якщо він не встановлений, просто запустіть sudo apt-get install avahi-utils.
Ерік Карвальо

тож чи потрібно було б встановити ssh-сервер чи, наприклад, запустити ubuntu 14.04 за замовчуванням?
tobi

1
@tobi SSH-сервер не встановлений за замовчуванням. Ви повинні встановити його.
Ерік Карвальо

2
список здається порожнім після запуску avahi. Обидва комп'ютери підключені до одного маршрутизатора
Хосе Оспіна

15

Ви можете використовувати IP-адресу, щоб перенести в комп’ютер малюка. Якщо ви хочете використовувати ім'я комп'ютера, відредагуйте файл / etc / hosts, щоб включити ім'я комп'ютера.

192.168.1.104  dad
192.168.1.105  kids

12
Вам потрібно вказати, що IP-адреси потрібно статично призначати комп’ютерам.
Алаа Алі

3
Ви можете ввімкнути sshім'я за іменем, не редагуючи файл хостів, іменуючи хостів у ~/.ssh/config: howtogeek.com/75007/…
Натан Лонг

@NathanLong - Приємна порада! хоча можна стверджувати, що його у файлі хостів дозволяє отримувати доступ до будь-якої служби (якщо це бажано).
stefgosselin

9

Перш ніж робити ssh, перевірте наявність ssh-клієнта та сервера. Якщо у вас немає цієї служби, встановіть

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Якщо ви це вже зробили

 ssh username@ipaddress

 Enter connecting device login password.

Приклад:

 ssh prem@192.168.1.145

 prem@192.168.1.145's password:********

Якщо у вас виникли помилки типу: "У дозволі відмовлено, спробуйте ще раз."

Перевірте двічі Ім'я користувача та ip.


8

Я використовую файл ~ / .ssh / config, який ssh ​​аналізує автоматично, ось приклад:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

Зауважте, що ви можете використовувати будь-яку змінну (на стороні клієнта) у цьому файлі та встановити її глобально або на одному сервері.


Тоді як же можна налаштувати DNS - засіб домашнього інтернет - шлюзу пристрою , щоб зв'язати server1-web.example.orgі server2-db.example.orgз відповідними серверами?
Damian Yerrick

5
  1. Ви можете прямувати до локального IP, якщо, наприклад, ваша локальна мережа використовує статичні IP-адреси
    ssh someuser@192.168.1.2

  2. Ви можете редагувати файл хостів на обох комп'ютерах, про що згадував Ед Мане у своїй відповіді . Таким чином, ви можете потім ssh, використовуючи ім'я хоста комп'ютера, тобтоssh someuser@some_hostname

  3. Ви можете налаштувати локальний сервер DNS для вирішення хостів вашої локальної мережі. Таким чином, ви зможете ssh, використовуючи ім'я хоста комп'ютера, як у варіанті 2, але з додатковою користю уникайте редагування кожного файлу хостів, вказуючи ваш DNS-сервер у мережевих налаштуваннях Ubuntu.

DNSMasq - досить хороший сервер DNS, простий у налаштуванні.
Ще один варіант - BIND .


3

Використовуйте локальну IP-адресу локальної мережі. Альтернативний підхід вимагає, щоб якийсь порт був відкритий для Інтернету, щоб ви могли увійти.

Також вам знадобиться картографічне порт (на маршрутизаторі). Використання вашої "загальнодоступної" IP-адреси (на маршрутизаторі) в якості цілі не підключатиметься ні до двох ваших ПК.


Найпростіший спосіб - назавжди призначити кожну IP-адресу (для 2-х комп'ютерів) на маршрутизаторі. Потім просто підключіться до цієї IP-адреси.

Якщо ви хочете отримати розумний (пізніше), налаштуйте сервер і почніть використовувати локальну службу DNS для призначення значущих імен кожному пристрою. Не дуже варто клопоту лише на 2 ПК.


1
Примітка: багато пристойних домашніх маршрутизаторів сьогодні читають імена хостів робочих станцій під час призначення IP-адреси та вирішуватимуть її для локального DNS. На жаль, це ще не універсальна особливість.
Пісквор

2

Якщо ви ділитесь тим самим підключенням до Інтернету, ви, швидше за все, позаду того ж маршрутизатора Wi-Fi. Таким чином, ви підключаєтесь безпосередньо до свого комп’ютера для дітей:

ssh <IP-address>

або:

ssh <user-name>@<IP-address>

Очевидно, це працює краще, якщо дитячий комп'ютер має статичну IP-адресу. Інакше завжди потрібно перевірити, що таке IP. Більшість маршрутизаторів мають можливість призначити статичний (завжди однаковий) IP обраним пристроям. Деякі маршрутизатори також мають можливість призначити ім'я хоста певному пристрою - тоді для будь-якого пристрою в одній мережевій адресі "діти" означало б те саме. Якщо ви присвоюєте імена хостів за допомогою файлів / etc / hosts, ім'я хоста відомо лише тому комп'ютеру, де знаходиться цей файл хоста. Також це передбачає, що дитячий комп'ютер має статичну IP-адресу.

Ви можете встановити статичний IP для дитячого комп'ютера і на цій машині, але я радимо налаштування, коли налаштування мережі робляться в маршрутизаторі. Один пункт управління - простіше в управлінні. Якщо щось незрозуміло, залиште коментар, і я розгорну свою відповідь.


Я спробував Вашу пропозицію, але отримав помилку: ssh: connect to host xxx.xxx.x.xx port 22: connection refused- чи потрібна додаткова конфігурація?
lukaszkups

На цій машині повинен бути запущений ssh-сервер, і жоден брандмауер не блокує його тощо. Можливо, ssh був налаштований на очікування з'єднань на якомусь іншому порту, і в цьому випадку прапором -p користувач може використовувати щось інше, ніж порт за замовчуванням (22).
Tanel Mae

0

Ви можете використовувати IP-адресу замість імені хоста або призначити власне ім’я хоста у вашому /etc/hostsфайлі.

Щоб отримати IP на комп’ютері малюка: у меню мережі див. "Інформація про з'єднання" або запустіть ifconfigкомандний рядок (це потрібно зробити на комп'ютері малюка).

Ваш маршрутизатор wifi призначає ці IP-адреси, і ви повинні мати можливість налаштувати його, щоб зберігати конкретні IP-адреси для тих комп'ютерів, яким вони призначені. (Інакше IP-адреси можуть час від часу змінюватися).


0

Ви можете просто дати машині своєї дитини призначити ім'я обчислення.
Тоді просто зробити,
ssh MachineName

Я ніколи цього не використовував, просто думкою в голові я поділився.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.