Во-первых, я знаю, что этот вопрос задавали миллион раз, и я прочитал все, что смог найти, и до сих пор не могу решить проблему.
Я сталкиваюсь с этой проблемой, когда ssh'ing с моего Mac на мой сервер Ubuntu при новой установке Ubuntu (я переустановил из-за этой проблемы).
У меня SSH-порт сопоставлен с 7070, потому что мой интернет-провайдер блокирует 22.
На клиенте:
bash: ssh -p 7070 -v me@address.org
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to address.org port 7070.
debug1: Connection established.
debug1: identity file /home/me/.ssh/identity type -1
debug1: identity file /home/me/.ssh/id_rsa type 1
debug1: identity file /home/me/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
Вот что я сделал, чтобы попытаться решить проблему:
Убедился, что мой maxstartups
нормально:
bash: grep MaxStartups /etc/ssh/sshd_config
#MaxStartups 10:30:60
Когда я бегу telnet localhost
, Я получаю это:
telnet localhost
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Когда я запускаю / usr / sbin / sshd -t
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Когда я регенерирую ключи с помощью
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
Я получаю ту же ошибку.
Я почти уверен, что проблема именно в этом. Кто-нибудь может помочь?
Я начал получать эту ошибку сразу после того, как отредактировал /etc/hosts.allow.
Смотрите, прежде чем я исправил и после.
ALL: 192.168.1 notice no period after 192.168.1
ssh_exchange_identification: Connection closed by remote host
ALL: 192.168.1. see the extra period after 192.168.1.
fred@192.168.1.122's password:
Welcome to Linux Mint 11 Katya (GNU/Linux 2.6.38-8-generic i686)
Я знаю, что это старый вопрос, но, поскольку на него еще нет принятого ответа, вот решение, которое сработало для меня в примере подключения к виртуальной машине на Koding.com:
Измените свой .ssh/config
файл
из:
Host *.kd.io User myusername ProxyCommand ssh %r@ssh.koding.com nc %h %p
кому:
Host *.kd.io
User myusername
ProxyCommand ssh myusername@ssh.koding.com nc %h %p
Обратите внимание на 2 вещи:
percent_expand: unknown key %r
Я изменился %r
на мое имя пользователяЯ использую Centos6
Скорее всего, я могу придумать, что спасет вас там, где вы были, о чем вы еще не говорили, что проверили, - это владение вашим файлом authorized_keys. Проверь это /home/me/.ssh/
- 700, а файлы внутри - 600 (недоступны для группы) и принадлежат «мне». Пытаться -vvv
для более подробного объяснения того, что именно делает ssh в этот момент.
Убедитесь, что вы бежите sshd -t
как корень. Я получаю сообщение об ошибке «Не могу открыть ключ хоста», если запускаю его как пользователь. В противном случае убедитесь, что / etc / ssh / ssh_host _ * _ ключ root: root и 600, а ключи .pub - root: root 644
Я думаю, что selinux разобрался бы с нестандартным портом еще до того, как вы смогли к нему подключиться, но на всякий случай проверьте /var/log/audit.log, если selinux включен.
how_to_generate_keygen:
$ ssh-keygen -t dsa -P “” -f ~/.ssh/id_dsa
Попробуйте выполнить приведенную выше команду обычным пользователем или пользователем root.
Удачи.
Вы можете получить "ssh_exchange_identification: соединение закрыто удаленным хостом", если ваш sshd
сервис не работает!
Если у вас есть доступ к проверке сервера, у вас есть sshd
служба работает с:
ps aux | grep ssh
и убедитесь, что он прослушивает порт 22:
netstat -plant | grep :22