.png)
원격 컴퓨터에서 추가 sshd 프로세스를 시작하려고 했습니다. 사용하려는 새 sshd 구성 파일로 작업 디렉토리를 만들었습니다.
이 디렉터리의 구성 파일을 사용하여 sshd를 실행하려고 하면 호스트 키를 찾을 수 없다는 메시지가 나타납니다. 내 작업 디렉토리의 위치를 지정하기 위해 스위치를 실행하여 누락된 호스트 키를 생성하려고 시도했지만 ssh-keygen은 내가 지정한 디렉토리 대신 키를 계속 배치하려고 ssh-keygen -A
시도 합니다 . /etc/ssh에 대한 액세스 권한이 없으므로 실패합니다.-f
/etc/ssh/
이 경로에 액세스하지 않고 어떻게 이러한 키를 생성할 수 있나요?
답변1
옵션 은 생성하라고 -A
알려줍니다 .ssh-keygen
호스트 키. 매뉴얼 페이지에 따르면, 의도된 용도는 ssh-keygen
다음과 같습니다.
일반적으로 공개 키 인증으로 SSH를 사용하려는 각 사용자는 이를 한 번 실행하여 , 또는
에서 인증 키를 생성 합니다 .~/.ssh/identity
~/.ssh/id_ecdsa
~/.ssh/id_dsa
~/.ssh/id_rsa
추가적으로, 시스템 관리자는 이를 사용하여 호스트 키를 생성할 수 있습니다.
개요에는 -A
다른 옵션 없이 한 줄에 단독으로 나열됩니다.
SYNOPSIS
ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
[-f output_keyfile]
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
ssh-keygen -i [-m key_format] [-f input_keyfile]
ssh-keygen -e [-m key_format] [-f input_keyfile]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
ssh-keygen -l [-f input_keyfile]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11
ssh-keygen -F hostname [-f known_hosts_file] [-l]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-f input_keyfile] [-g]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -T output_file -f input_file [-v] [-a num_trials] [-K checkpt]
[-W generator]
ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
[-O option] [-V validity_interval] [-z serial_number] file ...
ssh-keygen -L [-f input_keyfile]
ssh-keygen -A
따라서 (소스를 수정하고 직접 컴파일하는 것을 제외하고) 귀하가 요구하는 것은 의도된 용도가 아닙니다.
추가 자료:
답변2
Thomas가 링크한 매뉴얼 페이지에 따르면 -f
이제 ssh-keygen -A
파일에 대한 접두어를 지원하고 지정하므로 이 기능이 추가된 것처럼 보입니다.
-A
모든 기본 키 유형(
rsa
,ecdsa
및ed25519
)의 호스트 키가 아직 없는 경우 생성합니다. 호스트 키는 기본 키 파일 경로, 빈 암호, 키 유형에 대한 기본 비트 및 기본 설명을 사용하여 생성됩니다.-f
또한 지정된 경우 해당 인수는 결과 호스트 키 파일의 기본 경로에 대한 접두어로 사용됩니다. 이는/etc/rc
새 호스트 키를 생성하는 데 사용됩니다 .
메모etc/ssh
실행하기 전에 폴더가 출력 폴더 아래에 존재해야 함ssh-keygen
$ mkdir -p output/etc/ssh
$ ssh-keygen -A -f output
ssh-keygen: generating new host keys: RSA ECDSA ED25519
$ ls output/etc/ssh/
ssh_host_ecdsa_key ssh_host_ecdsa_key.pub ssh_host_ed25519_key ssh_host_ed25519_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub
답변3
Docker에 액세스할 수 있는 경우 컨테이너 외부에 있을 새로운 영구 호스트 키를 생성하기 위해 다음을 사용했습니다.
docker run -d --name get_host_keys lscr.io/linuxserver/openssh-server:latest
sleep 5
docker cp get_host_keys:/etc/ssh/. .
rm *config*
docker stop get_host_keys
docker rm get_host_keys