Chỉ để cải thiện câu trả lời của tumbleweed có liên kết chết trong đó để tìm danh sách thuật toán cũ.
Đầu tiên quyết định một danh sách các thuật toán. Để tìm danh sách cũ, sử dụng ssh -vv:
ssh -vv somehost
Và tìm kiếm 2 dòng như "thuật toán khóa máy chủ: ..." trong đó dòng đầu tiên xuất hiện là ưu đãi của máy chủ và thứ 2 là của máy khách. Hoặc để tự động chọn ra 2 dòng đó, hãy thử điều này (và để thoát nhấn ctrl + d):
ssh -vv somehost 2>&1 | grep "host key algorithms:"
Bây giờ hãy lọc nó xuống ... bạn nên xóa tất cả các dss / dsa vì chúng đã lỗi thời và bạn cũng muốn xóa ecdsa (như tôi), vì vậy, ví dụ nếu bạn có:
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
Bạn nên kết thúc với:
ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
Bây giờ chỉnh sửa cấu hình của bạn. Đối với cấu hình của riêng bạn:
vim ~/.ssh/config
Đối với cấu hình toàn hệ thống:
sudo vim /etc/ssh/ssh_config
Thêm một dòng mới, trên toàn cầu:
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
hoặc cho một máy chủ cụ thể (không lý tưởng cho cấu hình máy chủ rộng):
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
Thay vì danh sách tôi đã nhập, dán danh sách bạn nhận được từ ssh -vvđầu ra, không bao gồm phần "thuật toán khóa máy chủ:".