Подключите два компьютера с SSH в домашней LAN

У меня есть два компьютера человечности, совместно использовал тот же Wi-Fi и требование достигнуть другого от терминала.

Сначала создайте пользователя на втором компьютере под названием "Второй" и имя хоста "Алгоритмы"

Затем попробованный, чтобы достигнуть его от другого с SSH, но получить сообщение об ошибке как

$ ssh second@Algorithms  
ssh: Could not resolve hostname algorithms: nodename nor servname provided, or not known

Решение, которое я попробовал, основано на сетях - Достигают, другой компьютер от локального - Спрашивают Ubuntu

Какова проблема с моим экспериментом?

4
задан 8 January 2019 в 07:33

3 ответа

ssh в домашней Локальной сети (LAN)

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

  • user1 использование comp1 и
  • user2 использование comp2.

Цель для user1 к удаленно доступу comp2 использование user2учетная запись в comp2.

Примечание: Если user1 имеет учетную запись в comp2 и user1 пожелания получить доступ к ее учетной записи в comp2 от comp1 затем она она не должна указывать имя пользователя в команде ssh. ssh comp2.local будет работать.

Установка ssh сервер в comp2

Для этого необходимо будет физически перейти в comp2 и войдите в него с помощью учетной записи с полномочиями администрирования. Я принимаю то есть, user2 учетная запись.

Установите ssh сервер

Настольная Ubuntu не идет ни с какими серверами.Кому: ssh в comp2 необходимо будет сначала установить openssh-server. Откройте терминал в comp2 путем нажатия Ctrl+Alt+T и вводят следующие строки по одному:

sudo apt update
sudo apt install openssh-server

Относительно Вас попросят user2пароль. При вводе пароля, курсор не переместится, и будет казаться, что ничего не происходит. Это нормально. Хит Входит после ввода пароля. Затем следуйте инструкциям.

Однажды openssh-server установлен Вы будете видеть новые опции в Настройках при совместном использовании названного "RemoteLogin", и это будет "На":

enter image description here

Стандартный рабочий стол Ubuntu не идет ни с какими установленными брандмауэрами. Если Вам установили брандмауэр, затем удостоверяются, что он позволяет соединения с портом 22 из LAN. Инструкции будут зависеть от определенного программного обеспечения брандмауэра.

Тест ssh локально

Все еще на терминале comp2 протестируйте это ssh работает. Введите команду:

ssh 127.0.0.1

127.0.0.1 относится к IP-адресу компьютера, который Вы используете. Другими словами, Вы пробуете к ssh от comp2 кому: comp2. Если все будет подходить, то Вас спросят, уверены ли Вы, что хотите соединиться и затем для Вашего пароля. После того как Вы отвечаете yes для того, чтобы быть уверенным и вводят пароль для user2 Вы будете видеть терминальное быстрое изменение от user2@comp2$ кому: user2@127.0.0.1$. Это показывает, что Вы имеете успешно sshed от comp2 к себе.

Примечание: Начиная с того же пользователя (user2) ssh-луг в этом случае, Вы не должны указывать ssh user2@127.0.0.1 в команде ssh.

ssh от comp1

Кому: ssh от comp1 кому: comp2 можно или использовать имя компьютера (имя хоста) или его IP-адрес. Найти IP-адрес comp2 используйте ifconfig команда в терминале comp2. Вы будете видеть адрес как 192.168.x.y, где x может быть 0 или 1 и y может быть любое число между 2 и 255.

Сформируйте терминал в comp1 войдите также:

ssh user2@comp2.local

или

ssh user2@192.168.x.y

Примечание: При использовании названия компьютера затем, необходимо добавить .local в конце. При использовании локального IP-адреса он может время от времени изменяться, если фиксированный адрес не присвоен.

Проблемы безопасности

  1. Настройка маршрутизатора
  2. Включите основанную на открытом ключе аутентификацию и отключите основанную на пароле аутентификацию.
  3. Установите и настройте брандмауэр

1. Настройка маршрутизатора

Удостоверьтесь, что порт 22 не передается никаким компьютерам в домашнем маршрутизаторе. Это предотвратит любого снаружи домашнего использования LAN ssh для соединения с домашними компьютерами.

Инструкции являются конкретным маршрутизатором и вне объема этого ответа, поскольку он не имеет никакого отношения к Ubuntu.

2. Включите основанную на открытом ключе аутентификацию и отключите основанную на пароле аутентификацию

Это - более безопасный способ использовать ssh. Это использует пару частную с открытым ключом. Закрытый ключ остается в доверяемом компьютере, из которого сделано соединение SSH. В этом случае comp1. Открытый ключ переходит в comp2. После того как ключи существуют, Вы отключите основанную на пароле аутентификацию в ssh сервере в comp2. При отключении основанной на пароле аутентификации, не удостоверяясь, что основанная на ключе аутентификация работает, то ssh не будет работать, поскольку не будет никакого способа аутентифицировать удаленного пользователя.

Сначала генерируйте пару частную с открытым ключом в user1@comp1. Это должно будет быть сделано в каждом пользователе и каждом локальном компьютере от где Вы ssh к другому компьютеру. В терминале войдите:

ssh-keygen -t rsa -b 4096

Процесс предложит Вам пароль. Можно совершить нападки, входят, если Вы не хотите тот. При вводе пароля Вас попросят его каждый раз Вас у ssh от comp1 кому: comp2. При использовании пароля, это не должно быть то же как пароль, используемый для нормального входа в систему.

Затем необходимо будет скопировать открытый ключ с comp1 кому: comp2. В терминале в comp1 войдите:

ssh-copy-id user2@comp2.local

Вас попросят ввести пароль входа в систему user2 в comp2. Если у Вас есть другие компьютеры в домашней LAN, Вы хотите к ssh к от user1@comp1 затем Вы не должны создавать новую пару ключей. Скопируйте открытый ключ user1@comp1 к другим учетным записям пользователей в других удаленных компьютерах с помощью вышеупомянутой команды.

После того как открытый ключ успешно копируется в user2 учетная запись comp2 попробуйте к ssh снова:

ssh user2@comp2.local

Теперь необходимо смочь войти comp2 без user2пароль. В этой точке можно или использовать пароль или открытый ключ, который Вы генерировали для входа в систему. Можно протестировать это путем создания нового пользователя (или с существующим вторым пользователем) в comp1, такой как user1a. На данном этапе user1@comp1 сможет к ssh к user2@comp2 без пароля с помощью открытого ключа. С другой стороны, user1a@comp1 сможет к ssh к user2@comp2 должен будет использовать пароль user2.

Следующий шаг должен отключить основанную на пароле аутентификацию. Можно хотеть сделать это локально в терминале comp2. Используйте следующую команду для редактирования /etc/ssh/sshd_config

нано sudo/etc/ssh/sshd_config

Затем удостоверьтесь, что это содержит следующие строки, и они не прокомментированы:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no 

Обратите внимание, что эти строки не могут быть вместе. "Непрокомментированный" означает, что существует нет # перед каждой из этих строк.

Используйте Ctrl+W для сохранения изменений и Ctrl+X для выхода из редактора.

Наконец, перезапустите ssh сервер с новыми настройками следующей командой:

sudo systemctl restart ssh

Теперь user1@comp1 все еще сможет к ssh к user2@comp2 без пароля с помощью открытого ключа. С другой стороны, user1a@comp1 отклонят разрешение к ssh к user2@comp2.

3. Установите и настройте брандмауэр

Существуют многие программное обеспечение брандмауэра, и некоторых из них трудно настроить. Я предлагаю, чтобы Вы установили "несложный брандмауэр", названный ufw командой:

sudo apt install ufw

Для открытия порта 22, но только из домашней LAN используют команду:

sudo ufw allow from 192.168.x.0/24 to any port 22 

Примечание: замена x с также 0 или 1 на основе Вашей настройки маршрутизатора.

Этот начинающийся брандмауэр comp2 остановки любой снаружи домашней LAN использует ssh для соединения с comp2. Однако это позволяет, любой (использующий любой компьютер) в домашней LAN пробует к ssh в comp2. Если comp2 удален из дома и взят где-то в другом месте и подключен к другой "подобной" сети, скажите WiFi, все компьютеры в той сети будут позволены порту доступа 22 из comp2 этой установкой брандмауэра. Поэтому я рекомендую, чтобы основанная на пароле аутентификация, которая будет отключена и основанная на частном открытом ключе аутентификация, использовалась во всех компьютерах, выполняющих ssh сервер.

Надеюсь, это поможет

12
ответ дан 23 November 2019 в 11:39

Возможно, попробуйте к ssh через IP не имя хоста?

Можно проверить IP использование ifconfig

1
ответ дан 23 November 2019 в 11:39

Добавьте строку к Вашему /etc/hosts файл как это:

<IP_ADDRESS_OF_YOUR_ALGORITHMS_HOST> algorithms

Например:

192.168.168.168 algorithms

Сохранить /etc/hosts и попытайтесь соединиться снова.

Так или иначе, как быстрое решение, можно всегда соединяться непосредственно через IP-адрес:

ssh second@192.168.168.168
0
ответ дан 23 November 2019 в 11:39

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

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