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

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

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

Бежать:

avahi-browse -tl _workstation._tcp

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

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

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

192.168.1.104  dad192.168.1.105  kids

Прежде чем делать ssh, проверьте наличие ssh-клиента и сервера. Если у вас нет этих служб, установите их с помощью следующих команд:

sudo apt-get install openssh-clientsudo apt-get install openssh-server

Если вы уже установили их, просто сделайте:

ssh username@ipaddress

и введите пароль для входа в подключаемое устройство.

  • Пример :

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

Если вы получите какую-либо ошибку, например : Permission denied, please try again., пожалуйста, дважды проверьте имя пользователя и IP-адрес.

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

Host *ControlMaster autoControlPath /tmp/%r@%h:%pKeepAlive yes ServerAliveInterval 60ServerAliveCountMax 10ControlPersist 1hHost server1        User user1        HostName server1-web.example.orgHost server2        User user2        HostName server2-db.example.org        Compression yes        IdentityFile /home/user/.ssh/different_key.pem

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

  1. Вы можете подключиться по ssh непосредственно к локальному IP-адресу при условии, что ваша локальная сеть использует статические IP-адреса, например
    ssh someuser@192.168.1.2

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

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

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

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

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


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

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

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

ssh <IP-address>

или:

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

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

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

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

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

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

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

В каком возрасте у детей начинается “личная жизнь”? :slight_smile: