У меня постоянно возникают проблемы с SSH
При попытке подключения у меня всегда появляется это сообщение:
Connection closed by 192.168.1.10 port 22
Когда я проверяю статус SSH
ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab Active: active (running) since Sun 2017-01-01 23:17:08 GMT; 57min ago Process: 804 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS Main PID: 487 (sshd) CGroup: /system.slice/ssh.service
└─487 /usr/sbin/sshd -D
Jan 01 23:17:14 kevin-desktop sshd[487]: Server listening on :: port
22. Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: fatal: No supported key exchange algor
решение1
Я сам это видел, это когда ключи хоста повреждаются. Вы можете сбросить их, выполнив:
sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-server
Мне еще предстоит понять, почему они были испорчены.
решение2
Сгенерируйте новый набор ключей на клиенте:
ssh-keygen
Возьмите содержимое открытого ключа у клиента:
~/.ssh/id_rsa.pub
И добавьте их в файл авторизованных ключей на сервере:
~/.ssh/authorized_keys
Разрешения на сервере должны выглядеть следующим образом:
-rw------- 1 user1 user1 399 Apr 20 09:04 authorized_keys
drwx------ 2 user1 user1 4096 Apr 20 09:04 .ssh
решение3
fatal: No supported key exchange algor...
Похоже, алгоритмы, поддерживаемые вашим клиентом, отличаются от поддерживаемых сервером. Настройте LogLevel DEBUG
на сервере /etc/ssh/sshd_config
и используйте ssh -vvv
, чтобы получить больше информации о причине сбоя.