У меня есть два компьютера человечности, совместно использовал тот же Wi-Fi и требование достигнуть другого от терминала.
Сначала создайте пользователя на втором компьютере под названием "Второй" и имя хоста "Алгоритмы"
Затем попробованный, чтобы достигнуть его от другого с SSH, но получить сообщение об ошибке как
$ ssh second@Algorithms
ssh: Could not resolve hostname algorithms: nodename nor servname provided, or not known
Решение, которое я попробовал, основано на сетях - Достигают, другой компьютер от локального - Спрашивают Ubuntu
Какова проблема с моим экспериментом?
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", и это будет "На":
Стандартный рабочий стол 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-адреса он может время от времени изменяться, если фиксированный адрес не присвоен.
Удостоверьтесь, что порт 22 не передается никаким компьютерам в домашнем маршрутизаторе. Это предотвратит любого снаружи домашнего использования LAN ssh для соединения с домашними компьютерами.
Инструкции являются конкретным маршрутизатором и вне объема этого ответа, поскольку он не имеет никакого отношения к Ubuntu.
Это - более безопасный способ использовать 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
.
Существуют многие программное обеспечение брандмауэра, и некоторых из них трудно настроить. Я предлагаю, чтобы Вы установили "несложный брандмауэр", названный 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 сервер.
Надеюсь, это поможет
Возможно, попробуйте к ssh через IP не имя хоста?
Можно проверить IP использование ifconfig
Добавьте строку к Вашему /etc/hosts
файл как это:
<IP_ADDRESS_OF_YOUR_ALGORITHMS_HOST> algorithms
Например:
192.168.168.168 algorithms
Сохранить /etc/hosts
и попытайтесь соединиться снова.
Так или иначе, как быстрое решение, можно всегда соединяться непосредственно через IP-адрес:
ssh second@192.168.168.168