เพียงเพื่อปรับปรุงคำตอบของ tumbleweed ซึ่งมีลิงค์อยู่ในนั้นเพื่อค้นหารายการเก่าของอัลกอริทึม
ก่อนตัดสินใจในรายการของอัลกอริทึม ในการค้นหารายการเก่าให้ใช้ssh -vv
:
ssh -vv somehost
และมองหา 2 บรรทัดเช่น "อัลกอริธึมของคีย์โฮสต์: ... " โดยที่แรกดูเหมือนจะเป็นข้อเสนอของเซิร์ฟเวอร์และที่สองเป็นของลูกค้า หรือหากต้องการเลือก 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
ผลลัพธ์ไม่รวมส่วน "อัลกอริธึมของคีย์โฮสต์:"