Просто чтобы улучшить ответ перекати, который имеет неработающую ссылку в нем для нахождения старого списка алгоритмов.
Первое решение в списке алгоритмов. Чтобы найти старый список, используйте ssh -vv
:
ssh -vv somehost
И обратите внимание на 2 строки, как «алгоритмы основного хоста: ...», где впервые появляется как предложение сервера, а второй является клиентом. Или, чтобы выбрать эти две строки автоматически, попробуйте это (и для выхода нажмите Ctrl + D):
ssh -vv somehost 2>&1 | grep "host key algorithms:"
Теперь отфильтруйте его ... вы должны удалить все dss / dsa, так как они давно устарели, и вы также хотели удалить ecdsa (как я), например, если у вас было:
ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
Вы должны закончить с:
ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
Теперь отредактируйте ваш конфиг. Для вашего собственного конфига:
vim ~/.ssh/config
Для общесистемной конфигурации:
sudo vim /etc/ssh/ssh_config
Добавьте новую строку, либо глобально:
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
или для определенного хоста (не идеально для конфигурации сервера):
Host somehost
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
Вместо списка я вошел, вставьте список , полученный из ssh -vv
вывода, не incluing «алгоритмов ключа хоста:» части.