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

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

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

1
задан 7 June 2013 в 19:18

8 ответов

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

192.168.1.104  dad
192.168.1.105  kids
14
ответ дан 24 May 2018 в 21:19
  • 1
    Вы должны указать, что IP-адреса должны быть статически назначены компьютерам. – Alaa Ali 7 June 2013 в 17:21
  • 2
    Вы можете включить ssh ing по имени без редактирования файла hosts, назвав узлы в ~/.ssh/config: howtogeek.com/75007/… – Nathan Long 7 June 2013 в 23:57
  • 3
    @NathanLong - Хороший совет! хотя можно было бы утверждать, что он в файле hosts позволяет получить доступ к любой службе (если это необходимо). – stefgosselin 14 June 2013 в 18:14

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

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

8
ответ дан 24 May 2018 в 21:19
  • 1
    Затем как настроить DNS-объект домашнего интернет-шлюза для связи server1-web.example.org и server2-db.example.org с соответствующими серверами? – Damian Yerrick 14 May 2017 в 19:49

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

6
ответ дан 24 May 2018 в 21:19
Вы можете использовать ssh непосредственно на локальном IP при условии, что ваша ЛВС использует статические IP-адреса, например ssh someuser@192.168.1.2. Вы можете редактировать файл хостов на обоих компьютерах, как упоминал Эд Мане в его ответе. Таким образом, вы можете ssh использовать имя компьютера компьютера, то есть ssh someuser@some_hostname. Вы можете настроить локальный DNS-сервер для разрешения хостов вашей локальной сети. Таким образом, вы сможете использовать ssh с использованием имени хоста компьютера, как в варианте 2, но с дополнительным преимуществом - избегать редактирования каждого файла хостов, указав свой DNS-сервер в сетевых настройках Ubuntu.

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

4
ответ дан 24 May 2018 в 21:19

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

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

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

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

3
ответ дан 24 May 2018 в 21:19
  • 1
    Примечание. Многие достойные домашние маршрутизаторы в настоящее время будут читать имена хостов рабочих станций во время назначения IP-адреса и будут разрешать их для локального DNS. Увы, это еще не универсальная функция. – Piskvor 7 June 2013 в 19:27

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

ssh <IP-address>

или:

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

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

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

2
ответ дан 24 May 2018 в 21:19
  • 1
    Я пробовал Ваше предложение, но получил ошибку: ssh: connect to host xxx.xxx.x.xx port 22: connection refused - нужна ли дополнительная конфигурация? – mrmnmly 22 March 2017 в 14:49
  • 2
    На этом компьютере должен быть запущен сервер ssh, а брандмауэр не блокирует его и т. Д. Возможно, что ssh настроен на ожидание соединений на каком-то другом порту, и в этом случае флагом -p можно использовать что-то еще, кроме порта по умолчанию (22). – Tanel Mae 8 April 2017 в 22:01

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

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

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

0
ответ дан 24 May 2018 в 21:19

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

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

0
ответ дан 24 May 2018 в 21:19

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

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