SSH 호스트 키를 다시 만들 때 '호스트 키를로드 할 수 없습니다'오류


13

ssh-server 호스트 키를 다시 작성하려고합니다.

적어도 두 가지 방법이 있습니다.

  • dpkg-reconfigure로

    dpkg-reconfigure openssh-server
    

    이것은 잘 작동하지만 키 길이를 줄 수는 없습니다. 예를 들어 RSA 키에 4096이 필요합니다.

  • 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 RSA에 keylengh 4096과 함께 사용하려면 어떻게 해야합니까?


문제에 대한 자세한 내용을 보려면 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길이 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

비밀번호를 사용하여 호스트 키를 생성합니다. 해당 호스트 키를 잠금 해제하기위한 사용자 정의가 있습니까? 그렇지 않다면 이것이 예상되는 것입니다. 서비스를 관리하는 스크립트가 시작되고 호스트 키를로드하려고 시도하고 실패합니다. 내가 아는 한 비밀번호로 보호되는 호스트 키를 만들면 안됩니다.

SSH 서버 강화에 관심이 있다면 https://stribika.github.io/2015/01/04/secure-secure-shell.html 해당 문서에서 호스트 키를 만드는 데 사용되는 명령은 다음과 같습니다.

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

그러나 변경하기 전에 전체 문서를 읽어야합니다.


공장. myverylongpasswordhere를 제거하십시오. 그건 그렇고 : 정말 좋은 기사를 읽을 수 있습니다. 사실 openssh는 필자의 경우 우분투-repro에서 왔으며 KexAlgorithms curve25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256을 지원하지 않았습니다
— Emil Sommer

20

위의 답변 중 어느 것도 나를 위해 일하지 않았습니다. 다음을 수행하여 우분투 시스템을 수정했습니다.

/usr/bin/ssh-keygen -A

1
이. 이것은 "-A"플래그에 대한 ssh-keygen 맨 페이지에서 확인한 실제 답변입니다. 호스트 키가 존재하지 않는 각 키 유형 (rsa1, rsa, dsa, ecdsa 및 ed25519)에 대해 기본 키 파일 경로가있는 호스트 키, 빈 암호 문구, 키 유형의 기본 비트 및 기본 주석. 시스템 관리 스크립트에서 새 호스트 키를 생성하는 데 사용됩니다.
— BoomShadow

1

간단히 실행하십시오.

ssh-keygen -t rsa -b 4096

ssh-keygen SSH 키를 생성합니다.

  • -t 생성 할 키 유형을 지정합니다.
  • -b 키의 비트 수를 지정합니다.

자세한 내용은 이 페이지 를 참조하십시오.


이것은 답이 아닙니다. 내 질문을 참조하십시오. 이미 호스트 키를로드 할 수없는 결과와 함께이 작업을 모두 수행했습니다.
— Emil Sommer

3
정확히 @EmilSommer 아니, 인 대답은, 단지 (오류 메시지가 무엇을 뜻을 얻을 이유)에 대한 설명이 없습니다.
— LiveWireBT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.