ข้อผิดพลาด `ไม่สามารถโหลดคีย์โฮสต์` เมื่อพยายามสร้างคีย์โฮสต์ SSH ใหม่


13

ฉันกำลังพยายามสร้างคีย์โฮสต์ ssh-server ขึ้นใหม่

ฉันมีอย่างน้อยสองวิธีในการทำเช่นนี้:

  • ด้วย dpkg- กำหนดค่าใหม่

    dpkg-reconfigure openssh-server
    

    สิ่งนี้ใช้ได้ดี แต่ฉันไม่สามารถให้ความยาวคีย์ได้ ฉันต้องการตัวอย่าง 4096 สำหรับคีย์ RSA

  • ด้วยตนเองกับ ssh-keygen

    sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
    

    สิ่งนี้จะสร้างคีย์ให้ฉันใหม่ แต่หลังจากรีสตาร์ทเซิร์ฟเวอร์ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

    could not load host key: /etc/ssh/ssh_host_rsa_key
    

    ดังนั้นฉันตรวจสอบไฟล์ sshd_config คืออะไร:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    ตรงกับที่สมบูรณ์แบบ ดังนั้นฉันจึงตรวจสอบเจ้าของและสิทธิ์ในกุญแจทั้งหมดของฉัน

    -rw------- 1 root root 3326 Mär 24 08:57 ssh_host_rsa_key
    

    เมื่อฉันลบคีย์ทั้งหมดและสร้างใหม่ด้วยdpkg-reconfigure openssh-serverคีย์จะเล็กลงและมีสิทธิไฟล์เหมือนด้านบน

คำถาม:ฉันจะใช้dpkg-reconfigureกับ keylengh 4096 สำหรับ RSA ได้อย่างไร


โปรดเรียกใช้sshdในโหมดแก้ไขข้อบกพร่องจากบรรทัดคำสั่ง ( sudo sshd -d) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาและโพสต์เอาท์พุท
David Foerster

@DavidFoerster ดูเหมือนว่าจะเป็นคำแนะนำที่ดี ฉันพยายามสร้างปัญหาใหม่ด้วยการย้ายกุญแจชั่วคราวสร้างคีย์ใหม่ด้วยรหัสผ่านหยุดและเริ่มต้นใหม่ ... ฉันไม่ได้รับข้อความแสดงข้อผิดพลาดของ OP นี่คือผลลัพธ์ที่ฉันได้รับlivewire@za20:/etc/ssh$ sudo sshd -dผลลัพธ์sshd re-exec requires execution with an absolute pathมิฉะนั้นฉันจะรวมตัวอย่างในคำตอบของฉัน :(
LiveWireBT

sudo /usr/sbin/sshd -dขออภัยที่ควรจะได้รับ ข้อผิดพลาดที่คุณได้รับนั้นมีความหมายอย่างแท้จริง (แม้ว่าจะไม่ค่อยชัดเจน)
David Foerster

แม้ว่าคำตอบที่ได้รับการยอมรับจะแก้ปัญหาได้ แต่ฉันก็ยังสงสัยเกี่ยวกับคำถามสุดท้ายในโพสต์แรก: ฉันจะใช้dpkg-reconfigureกับ keylength 4096 ได้อย่างไร มีไฟล์ปรับแต่งบางแห่งที่มีข้อมูลนี้หรือไม่? ฉันดูรอบ ๆ ในฐานข้อมูล debconf (ใน/var/cache/debconf/) แต่ไม่พบสิ่งใดที่ดูเหมือนความยาวคีย์
ph0t0nix

คำตอบ:


8
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa

สร้างกุญแจให้ฉันอีกครั้ง แต่หลังจากรีสตาร์ทเซิร์ฟเวอร์ฉันได้รับ

could not load host key: /etc/ssh/ssh_host_rsa_key

คุณสร้าง hostkey ด้วยรหัสผ่าน มีการปรับแต่งใด ๆ เพื่อปลดล็อกคีย์โฮสต์นั้นหรือไม่ ถ้าไม่เช่นนั้นฉันคิดว่าเป็นสิ่งที่คาดหวัง: สคริปต์ที่จัดการบริการเริ่มขึ้นพยายามโหลด hostkey และล้มเหลว เท่าที่ฉันรู้คุณไม่ควรสร้าง hostkeys ที่ป้องกันด้วยรหัสผ่าน

หากคุณสนใจที่จะทำให้เซิร์ฟเวอร์ SSH ของคุณแข็งแกร่งขึ้นฉันขอแนะนำให้อ่านhttps://stribika.github.io/2015/01/04/secure-secure-shell.htmlคำสั่งที่ใช้ในการสร้าง hostkey ในเอกสารนั้นคือ:

ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key

แต่คุณควรอ่านเอกสารทั้งหมดก่อนทำการเปลี่ยนแปลงใด ๆ


โรงงาน เพียงแค่ลบ myverylongwordwordhere โดยวิธีการ: บทความที่ดีจริงๆที่จะอ่าน ในความเป็นจริง openssh มาจาก ubuntu-repro ในกรณีของฉันและไม่สนับสนุน KexAlgorithms curve25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Emil Sommer

20

ไม่มีคำตอบข้างต้นสำหรับฉัน ฉันแก้ไขระบบ Ubuntu ของฉันโดยทำสิ่งต่อไปนี้:

/usr/bin/ssh-keygen -A

1
นี้. นี่คือคำตอบที่แท้จริงตามที่ได้รับการยืนยันโดย manpage สำหรับ ssh-keygen เกี่ยวกับแฟล็ก "-A": สำหรับแต่ละประเภทคีย์ (rsa1, rsa, dsa, ecdsa และ ed25519) ซึ่งไม่มีคีย์โฮสต์ให้สร้าง คีย์โฮสต์ที่มีพา ธ ไฟล์คีย์เริ่มต้นวลีรหัสผ่านว่างบิตเริ่มต้นสำหรับประเภทคีย์และความคิดเห็นเริ่มต้น สคริปต์นี้ใช้โดยการบริหารระบบเพื่อสร้างโฮสต์คีย์ใหม่
BoomShadow

1

เพียงแค่เรียกใช้:

ssh-keygen -t rsa -b 4096

ssh-keygen สร้างคีย์ SSH

  • -t ระบุประเภทของคีย์ที่จะสร้าง
  • -b ระบุจำนวนบิตในคีย์

ดูหน้านี้สำหรับข้อมูลเพิ่มเติม


นี่ไม่ใช่คำตอบ โปรดดูคำถามของฉันฉัน allready นี้ด้วย resulst ที่ hostkey ไม่สามารถโหลดได้
Emil Sommer

3
@EmilSommer ไม่นั่นคือคำตอบที่หายไปโดยไม่ต้องอธิบาย (ทำไมคุณได้รับข้อความแสดงข้อผิดพลาดและความหมาย)
LiveWireBT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.