После точки Фреда в комментариях (и на самом деле читает сообщение об ошибке), я был неправильно и SSH соединялся. Я оставлю свой оригинальный ответ внизу и дополнительно отвечу на вопрос о невозможности подключения к работающему SSH.
Еще один хороший способ диагностировать проблемы ssh, когда сервер sshd отказывает в соединениях, и если OP правильно, ничего не регистрируется в auth.log
или syslog
, это запустить его на отдельном порту с включенной отладкой (я выбрал произвольный порт из 44
).
/full/path/to/sshd -p 44 -d
Затем вы можете подключиться к вашему ssh-клиенту и получить дальнейшую отладку проблемы:
ssh -p 44 root@x.x.x.x
Root (как Фред указал в своем ответе) - это пользователь, который потенциально может быть ограничен с помощью опции ssh PermitRootLogin
в вашем sshd_config
. Кроме того, типы методов аутентификации, используемые вашим sshd_config
могут дополнительно ограничить доступ к вашему хосту:
RSAAuthentication
PubkeyAuthentication
RhostsRSAAuthentication
HostbasedAuthentication
ChallengeResponseAuthentication
PasswordAuthentication
KerberosAuthentication
GSSAPIAuthentication
Посмотрите на странице man для sshd_config (man 5 sshd_config
) для получения дополнительной информации об этих опциях. Обычно большинство sshds имеют RSAAuthentication
, PubkeyAuthentication
и иногда PasswordAuthentication
. RSAAuthentication
специфичен для Protocol 1
и большинство хостов используют Protocol 2
который использует PubkeyAuthentication
. Оба полагаются на то, что root
имеет файл ключа (обычно находится в /root/.ssh/authorized_keys
), но это местоположение может быть переопределено с помощью параметра AuthorizedKeysFile
. Похоже, PasswordAuthentication
не включена на вашем SSD.
Для аутентификации RSA и Pubkey вам нужна пара ключей. Которые вы сгенерировали, и они живут на вашем клиентском компьютере в /home/mona/.ssh/id_rsa
и /home/mona/.ssh/id_rsa.pub
. Общественности половина из этих двух файлов (ключ , содержащийся в /home/mona/.ssh/id_rsa.pub) вы должны поместить в файле authorized_key
суперпользователя , упомянутом выше.
Оригинальный ответ, в котором говорится о невозможности удаленного подключения к процессу sshd
Это похоже на TCPWrappers или брандмауэр, закрывающий начальное соединение.
Проверьте свои auth.log
или syslog
в /var/log
как они могут дать некоторые подсказки относительно того, что блокирует соединение.
TCPwrappers обычно реализуется через файл /etc/hosts.allow
а в некоторых unixes - дополнительный или просто файл /etc/hosts.deny
(т.е. без файла hosts.allow).
Записи обычно имеют вид:
<service> : <access list> : <allow|deny>
ИЛИ ЖЕ
<service> : <access list>
в зависимости от типа используемой оболочки TCP. Формат этих файлов обычно можно найти с помощью man-страницы man 5 hosts_access
. Возможно, вам придется добавить запись, чтобы разрешить удаленный IP-доступ.
sshd : my.ip.address.here : allow
Большинство дистрибутивов с ядром Linux, как правило, используют iptables
в качестве основного брандмауэра, хотя некоторые используют ipchains
. (Я знаю, что FreeBSD использует ipfw
портированный из NetBSD). Ваш поставщик услуг может также иметь межсетевой экран или маршрутизатор с межсетевым экраном перед вашим сервисом, который блокирует эти запросы. Относительно того, какой брандмауэр использует ваш хост, потребуется некоторое изучение.
Правила брандмауэра iptables
могут быть перечислены с помощью команды iptables -nvL
(которая должна запускаться от имени пользователя root или через sudo). Цепочка INPUT
- это набор правил, используемый для разрешения / запрета входящих соединений вашего хоста. Возможно, вам придется добавить правило, разрешающее входящие SSH-соединения:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT -m comment --comment "Allow SSH connections from all hosts"
Возможно, вы захотите сделать так, чтобы он разрешал соединения только с определенного IP:
iptables -I INPUT -s 10.10.10.10 -p tcp --dport 22 -j ACCEPT -m comment --comment "Allow SSH connections from the 10.10.10.10 host"
Если ваш поставщик услуг заблокирует порт 22, вам, вероятно, потребуется перевести службу на другой порт (порт 2222
довольно популярен) с помощью параметра « Port
в файле sshd_config
(который обычно находится в /etc/ssh
).