호스트 키 누락으로 인해 SSH를 시작할 수 없습니다

호스트 키 누락으로 인해 SSH를 시작할 수 없습니다

SSH 서버 데몬을 시작하려고 할 때 호스트 키가 없다는 오류가 발생합니다. 그러나 살펴보니 /etc/ssh호스트 키가 있고 권한이 올바른 것으로 생각됩니다.

이는 임베디드 Linux 시스템의 OpenSSH 8.3p1입니다.

OpenSSH 구성에 어떤 문제가 있는지에 대한 아이디어가 있습니까?

~> ls -l /etc/ssh
total 529
-rw-r--r--    1 root     root        525809 Mar 30 15:16 moduli
-rw-r--r--    1 root     root          1484 Mar 30 15:16 ssh_config
-rw-------    1 root     root          1369 Mar 30 19:02 ssh_host_dsa_key
-rw-r--r--    1 root     root           600 Mar 30 19:02 ssh_host_dsa_key.pub
-rw-------    1 root     root           505 Mar 30 19:02 ssh_host_ecdsa_key
-rw-r--r--    1 root     root           172 Mar 30 19:02 ssh_host_ecdsa_key.pub
-rw-------    1 root     root           399 Mar 30 19:02 ssh_host_ed25519_key
-rw-r--r--    1 root     root            92 Mar 30 19:02 ssh_host_ed25519_key.pub
-rw-------    1 root     root          2590 Mar 30 19:02 ssh_host_rsa_key
-rw-r--r--    1 root     root           564 Mar 30 19:02 ssh_host_rsa_key.pub
-rw-r--r--    1 root     root          2333 Mar 30 17:29 sshd_config
~> systemctl status sshd
● sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2021-03-30 19:02:43 UTC; 8s ago
    Process: 338 ExecStartPre=/usr/bin/ssh-keygen -A (code=exited, status=0/SUCCESS)
    Process: 465 ExecStart=/usr/sbin/sshd -D -e (code=exited, status=1/FAILURE)
   Main PID: 465 (code=exited, status=1/FAILURE)

Mar 30 19:02:41 cm1sd ssh-keygen[338]: ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
Mar 30 19:02:41 cm1sd systemd[1]: Started OpenSSH server daemon.
Mar 30 19:02:43 cm1sd sshd[465]: sshd: no hostkeys available -- exiting.
Mar 30 19:02:43 cm1sd systemd[1]: sshd.service: Main process exited, code=exited, status=1/FAILURE
Mar 30 19:02:43 cm1sd systemd[1]: sshd.service: Failed with result 'exit-code'.

편집하다:

구성에 HostKey가 포함되어 있습니다.

HostKey /etc/ssh/ssh_host_rsa_key

편집 2:

OpenSSH 8.5p1로 업데이트하고 디버깅을 활성화한 상태에서 실행하여 몇 가지 추가 정보를 얻었습니다.

~> sshd -D -e -ddd
debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 374
debug2: parse_server_config_depth: config /etc/ssh/sshd_config len 374
debug3: /etc/ssh/sshd_config:14 setting Port 10505
debug3: /etc/ssh/sshd_config:19 setting HostKey /etc/ssh/ssh_host_rsa_key
debug3: /etc/ssh/sshd_config:35 setting MaxAuthTries 6
debug3: /etc/ssh/sshd_config:36 setting MaxSessions 2
debug3: /etc/ssh/sshd_config:38 setting PubkeyAuthentication yes
debug3: /etc/ssh/sshd_config:42 setting AuthorizedKeysFile .ssh/authorized_keys
debug3: /etc/ssh/sshd_config:55 setting IgnoreRhosts yes
debug3: /etc/ssh/sshd_config:58 setting PasswordAuthentication no
debug3: /etc/ssh/sshd_config:59 setting PermitEmptyPasswords no
debug3: /etc/ssh/sshd_config:67 setting X11Forwarding no
debug3: /etc/ssh/sshd_config:89 setting Subsystem sftp  /usr/libexec/sftp-server
debug1: sshd version OpenSSH_8.5, OpenSSL 1.1.1k  25 Mar 2021
Unable to load host key "/etc/ssh/ssh_host_rsa_key": error in libcrypto
Unable to load host key: /etc/ssh/ssh_host_rsa_key
sshd: no hostkeys available -- exiting.

OpenSSL의 libcrypto에 문제가 있는 것 같습니다. OpenSSL 버전 1.1.1k를 설치했습니다.

답변1

WSL에서는 다음과 같이 작동합니다.

sudo ssh-keygen -A
sudo service ssh --full-restart

관련 정보