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

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

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

61
задан 7 June 2013 в 18:18

9 ответов

Выполнить:

avahi-browse -tl _workstation._tcp

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

ssh <username>@<computer-name>.local
0
ответ дан 7 June 2013 в 18:18
  1. Вы можете напрямую подключиться по ssh к локальному IP-адресу при условии, что в вашей локальной сети используются статические IP-адреса, например
    ssh someuser@192.168.1.2

  2. . отредактируйте файл hosts на обоих компьютерах, как упомянуто Эдом Мане в его ответе . Таким образом, вы можете использовать ssh, используя имя хоста компьютера, то есть ssh someuser@some_hostname

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

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

0
ответ дан 7 June 2013 в 18:18

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

192.168.1.104  dad
192.168.1.105  kids
0
ответ дан 7 June 2013 в 18:18

Я использую файл ~ / .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

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

0
ответ дан 7 June 2013 в 18:18

Перед выполнением 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-адрес дважды.

0
ответ дан 7 June 2013 в 18:18

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

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


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

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

0
ответ дан 7 June 2013 в 18:18

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

ssh <IP-address>

или:

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

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

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

0
ответ дан 7 June 2013 в 18:18

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

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

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

0
ответ дан 7 June 2013 в 18:18

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

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

0
ответ дан 7 June 2013 в 18:18

Другие вопросы по тегам:

Похожие вопросы: