Каков наилучший способ для SSH для машин в локальной сети?

53

У меня есть 2 компьютера, один из которых я использую, и один для детей. Я хочу иметь возможность ssh на свой компьютер, чтобы контролировать его (например, закрывать его и т. Д.), Но любопытно, как это сделать. Мы оба находимся в одном доме и имеем одно и то же интернет-соединение.

Какой был бы лучший способ сделать это? Из исследования я прочитал, чтобы установить openssh-сервер на удаленном компьютере, но я не понимаю, что использовать для имени хоста при попытке подключения. Обычно для VPS это внешний IP, но поскольку мы оба совместно используем Wi-Fi-соединение, это будет аппаратный IP-адрес? Должны ли мы взаимодействовать непосредственно по локальной сети или через интернет?

    
задан dukevin 07.06.2013 в 13:45
источник

9 ответов

53

Run:

avahi-browse -tl _workstation._tcp

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

ssh <username>@<computer-name>.local
    
ответ дан Eric Carvalho 07.06.2013 в 14:16
источник
14

Вы можете использовать IP-адрес для ssh на компьютер ребенка. Если вы хотите использовать имя компьютера, отредактируйте файл / etc / hosts, чтобы включить имя компьютера.

192.168.1.104  dad
192.168.1.105  kids
    
ответ дан Ed Manet 07.06.2013 в 13:52
8

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

Host *
ControlMaster auto
ControlPath /tmp/%[email protected]%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

Обратите внимание, что вы можете использовать любую переменную (clientide) в этом файле и либо установить ее глобально, либо на сервер.

    
ответ дан Shadok 07.06.2013 в 16:53
6

Прежде чем делать ssh, проверьте для клиента и сервера ssh. Если у вас нет этой службы, установите

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Если вы уже успели сделать

 ssh [email protected]

 Enter connecting device login password.

Пример:

 ssh [email protected]

 [email protected]'s password:********

Если у вас возникли такие ошибки, как: «Отказано в разрешении, повторите попытку».

Пожалуйста, дважды проверьте имя пользователя и ip.

    
ответ дан PAC 07.03.2014 в 13:51
4
  1. Вы можете использовать ssh непосредственно на локальном IP при условии, что ваша ЛВС использует статические IP-адреса, например, ssh [email protected]

  2. Вы можете редактировать файл хостов на обоих компьютерах, как упоминал Эд Мане в его ответе . Таким образом, вы можете ssh использовать имя компьютера компьютера, то есть ssh [email protected]_hostname

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

DNSMasq - довольно хороший DNS-сервер, который легко настроить.
Другой вариант - BIND .

    
ответ дан Stef K 07.06.2013 в 14:13
3

Использовать локальный IP-адрес локальной сети. Альтернативный подход требует, чтобы какой-то порт был открыт для Интернета, чтобы вы могли войти в систему.

Кроме того, вам понадобится сопоставление портов (на маршрутизаторе). Используя ваш «общедоступный» IP-адрес (на маршрутизаторе) в качестве целевой, будет не подключаться к любому из ваших двух ПК.

Самый простой способ - навсегда назначить каждый IP-адрес (для ваших 2 компьютеров) на маршрутизаторе. Затем просто подключитесь к этому IP-адресу.

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

    
ответ дан david6 07.06.2013 в 14:16
2

Если вы используете одно и то же подключение к Интернету, вы, скорее всего, находитесь за одним и тем же Wi-Fi-маршрутизатором. Таким образом, вы подключаетесь непосредственно к компьютеру своих детей:

ssh <IP-address>

или

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

Очевидно, что это работает лучше, если компьютер для детей имеет статический IP-адрес. В противном случае вам всегда нужно проверить, что такое IP. Большинство маршрутизаторов имеют возможность назначать статический (всегда одинаковый) IP выбранным устройствам. Некоторые маршрутизаторы также имеют возможность назначать имя хоста определенному устройству - тогда для любого устройства в том же сетевом адресе «дети» означают одно и то же. Если вы присваиваете имена хостам файлу / etc / hosts, имя хоста известно только на том компьютере, на котором находится этот файл хоста. Также предполагается, что компьютер для детей имеет статический IP-адрес.

Вы можете установить статический IP-адрес на компьютер для детей также на этом компьютере, но я советую настройку, где сетевые настройки выполняются в маршрутизаторе. Один пункт управления - проще управлять. Если что-то неясно, оставьте комментарий, и я расширю свой ответ.

    
ответ дан Tanel Mae 07.06.2013 в 14:20
0

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

Чтобы получить IP-адрес на компьютере ребенка: в сетевом меню см. «Информация о подключении» или запустите ifconfig в командной строке (это нужно сделать на компьютере ребенка).

Ваш Wi-Fi-маршрутизатор назначает эти IP-адреса, и вы должны иметь возможность настроить его для сохранения определенных IP-адресов для компьютеров, которым они в настоящее время назначены. (В противном случае IP может время от времени меняться).

    
ответ дан AmanicA 26.06.2013 в 22:10
0

Вы можете просто присвоить имя вычисления имени машине своего ребенка.
Тогда просто сделайте,
ssh MachineName

Я никогда не использовал это, просто мысль в моей голове, которую я разделял.

    
ответ дан Gaurav Gandhi 28.01.2014 в 04:27