Lỗi `không thể tải khóa máy chủ` khi cố gắng tạo lại khóa máy chủ SSH


13

Tôi đang cố gắng tạo lại các khóa máy chủ ssh-server.

Tôi có ít nhất hai cách để làm điều này:

  • Với cấu hình lại dpkg

    dpkg-reconfigure openssh-server
    

    Điều này hoạt động tốt, nhưng tôi không thể đưa ra độ dài khóa sau đó. Tôi muốn ví dụ 4096 cho khóa RSA.

  • Thủ công với ssh-keygen

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

    Điều này tạo lại cho tôi các khóa, nhưng sau khi khởi động lại máy chủ, tôi nhận được thông báo lỗi sau :

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

    Vì vậy, tôi đã kiểm tra tệp sshd_config whats trong đó:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    phù hợp hoàn hảo. Vì vậy, tôi đã kiểm tra chủ sở hữu và quyền đối với tất cả các khóa của mình

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

    Khi tôi xóa tất cả các khóa và tạo lại chúng bằng dpkg-reconfigure openssh-server, các khóa nhỏ hơn và có cùng quyền với tệp như trên.

Câu hỏi: Làm cách nào tôi có thể sử dụng dpkg-reconfigurevới keylengh 4096 cho RSA?


Vui lòng chạy sshdtrong chế độ gỡ lỗi từ dòng lệnh ( sudo sshd -d) để biết thêm thông tin về vấn đề và đăng đầu ra.
David Foerster

@DavidFoerster Có vẻ như là một gợi ý hay. Tôi đã thử tạo lại vấn đề bằng cách tạm thời di chuyển các khóa của mình, tạo các khóa mới bằng mật khẩu, dừng và khởi động lại ... Tôi không nhận được thông báo lỗi của OP. Đây là kết quả tôi nhận được livewire@za20:/etc/ssh$ sudo sshd -dđầu ra sshd re-exec requires execution with an absolute pathNếu không tôi sẽ đưa một ví dụ vào câu trả lời của mình :(
LiveWireBT

Xin lỗi, điều đó nên có sudo /usr/sbin/sshd -d. Lỗi bạn nhận được có nghĩa đen (mặc dù không rõ ràng).
David Foerster

Mặc dù câu trả lời được chấp nhận giải quyết vấn đề, tôi vẫn tự hỏi về câu hỏi cuối cùng trong bài đầu tiên: Làm thế nào tôi có thể sử dụng dpkg-reconfigurevới keylength 4096? Có một tập tin cấu hình ở đâu đó có chứa thông tin này? Tôi đã tìm xung quanh trong các cơ sở dữ liệu gỡ lỗi (in /var/cache/debconf/) nhưng không tìm thấy bất cứ thứ gì trông giống như keylength.
ph0t0nix

Câu trả lời:


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

tạo lại cho tôi các phím. Nhưng, sau khi khởi động lại máy chủ, tôi nhận được

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

Bạn tạo một hostkey bằng mật khẩu. Có bất kỳ tùy chỉnh để mở khóa con tin đó không? Nếu không, thì tôi nghĩ đó là điều được mong đợi: tập lệnh quản lý dịch vụ khởi động, cố gắng tải mã khóa và thất bại. Theo tôi biết bạn không nên tạo các con tin được bảo vệ bằng mật khẩu.

Nếu bạn quan tâm đến việc làm cứng máy chủ SSH của mình thì tôi khuyên bạn nên đọc https://stribika.github.io/2015/01/04/secure-secure-shell.html lệnh được sử dụng để tạo mã khóa trong tài liệu đó là:

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

Nhưng bạn nên đọc toàn bộ tài liệu trước khi thực hiện bất kỳ thay đổi nào.


làm. chỉ cần loại bỏ myverylongpasswordhere. Nhân tiện: bài viết thực sự tốt đẹp để đọc. trong thực tế, openssh xuất phát từ ubfox-repro trong trường hợp của tôi và không hỗ trợ đường cong KexAlacticms25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Emil Sommer

20

Không có câu trả lời nào ở trên làm việc cho tôi. Tôi đã sửa hệ thống Ubuntu của mình bằng cách thực hiện như sau:

/usr/bin/ssh-keygen -A

1
ĐIỀU NÀY. Đây là câu trả lời thực sự, như được xác nhận bởi manpage cho ssh-keygen về cờ "-A" đó: Đối với mỗi loại khóa (rsa1, rsa, dsa, ecdsa và ed25519) mà khóa chủ không tồn tại, hãy tạo khóa khóa máy chủ với đường dẫn tệp khóa mặc định, cụm mật khẩu trống, bit mặc định cho loại khóa và nhận xét mặc định. Điều này được sử dụng bởi các kịch bản quản trị hệ thống để tạo khóa máy chủ mới.
BoomShadow

1

Đơn giản chỉ cần chạy:

ssh-keygen -t rsa -b 4096

ssh-keygen tạo khóa SSH.

  • -t chỉ định loại khóa để tạo
  • -b chỉ định số lượng bit trong khóa.

Xem trang này để biết thêm thông tin.


đây không phải là câu trả lời xin vui lòng xem câu hỏi của tôi, tôi đã sẵn sàng làm điều này, với sự phục hồi mà con tin không thể tải được.
Emil Sommer

3
@EmilSommer Không, đó chính xác câu trả lời, chỉ thiếu một lời giải thích (tại sao bạn nhận được thông báo lỗi và ý nghĩa của nó).
LiveWireBT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.