У меня есть 2 компьютера, один из которых я использую, а другой - для детей. Я хочу иметь возможность подключиться к их компьютеру через ssh (например, выключить его и т. Д.), Но мне любопытно, как это сделать лучше всего. Мы оба находимся в одном доме и используем одно и то же интернет-соединение.
Каков наилучший способ сделать это? Из исследований я прочитал, чтобы установить openssh-сервер на удаленный компьютер, но мне не понятно, что использовать для имени хоста при попытке подключения. Обычно для VPS это внешний IP, но так как мы оба используем Wi-Fi соединение, это будет аппаратный IP? Должны ли мы взаимодействовать напрямую по локальной сети или через Интернет?
Вы можете использовать IP-адрес для подключения ssh к компьютеру ребенка. Если вы хотите использовать имя компьютера, отредактируйте файл / etc / hosts, включив в него имя компьютера.
192.168.1.104 dad
192.168.1.105 kids
ssh
луг по имени, не редактируя файл hosts путем именования хостов в ~/.ssh/config
: howtogeek.com/75007/…
– RyanM
22.03.2020, 03:06
Если вы используете одно и то же подключение к Интернету, вы, скорее всего, находитесь за тем же маршрутизатором 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
- там какая-либо дополнительная необходимая конфигурация?
– Raniys
22.03.2020, 03:06
Используйте IP-адрес локальной сети. Альтернативный подход требует, чтобы какой-то порт был открыт для доступа в Интернет, чтобы вы могли войти.
Кроме того, вам потребуется сопоставление портов (на маршрутизаторе). Использование вашего «публичного» IP-адреса (на маршрутизаторе) в качестве цели не будет подключаться ни к одному из двух ваших ПК.
Самый простой способ - это постоянное назначение каждого IP-адреса (для двух компьютеров) на маршрутизаторе. Затем просто подключитесь к этому IP-адресу.
Если вы хотите стать умнее (позже), настройте сервер и начните использовать локальную службу DNS для назначения значимых имен каждому устройству. На самом деле не стоит проблем только для 2 компьютеров.
Я использую файл ~ / .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
Обратите внимание, что вы можете использовать любую (клиентскую) переменную в этом файле и установить ее глобально. или на сервер.
server1-web.example.org
и server2-db.example.org
с соответствующими серверами?
– Ismail
22.03.2020, 03:07
Перед выполнением 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-адрес дважды.
Вы можете напрямую подключиться по ssh к локальному IP-адресу при условии, что в вашей локальной сети используются статические IP-адреса, например
ssh someuser@192.168.1.2
. отредактируйте файл hosts на обоих компьютерах, как упомянуто Эдом Мане в его ответе . Таким образом, вы можете использовать ssh, используя имя хоста компьютера, то есть ssh someuser@some_hostname
Вы можете настроить локальный DNS-сервер для разрешения хостов вашей локальной сети. Таким образом, вы сможете ssh использовать имя хоста компьютера, как в варианте 2, но с дополнительным преимуществом избегать редактирования каждого файла хостов, указав свой DNS-сервер в сетевых настройках Ubuntu.
DNSMasq - довольно хороший DNS-сервер, простой в настройке.
Другой вариант - BIND .
avahi-browse
, you' ll должен установитьavahi-utils
пакет (который также вытянет вavahi-daemon
, сервис, обеспечивающий .local адресуемость). – McLan 22.03.2020, 03:09sudo apt-get install avahi-utils
. – Romário 22.03.2020, 03:09avahi
. Оба компьютера подключены к тому же маршрутизатору – juanjo 22.03.2020, 03:11