Known_hosts에 서버를 자동으로 추가하는 방법은 무엇입니까? (그리고 md5 지문을 사용하지 마십시오. 안전한 방법을 의미하므로 "자동 예/수락" 솔루션을 보내지 마십시오. 필요한 자격 증명을 서버에서 컴퓨터로 가져오고 싶습니다)
known_hosts
새 서버를 허용하도록 SSH 파일을 자동으로 업데이트하고 싶습니다 .
서버의 공개 키(보안 채널을 통해 획득)를 추가해야 한다고 가정 id_rsa.pub
하지만 형식이 다르다는 것을 알 수 있습니다. (이렇게 추가하려고 시도했지만 awk '{print "server "$1" "$2}' id_rsa.pub > .ssh/known_hosts
확인에 실패했습니다. 사용하고 싶지 않습니다. md5 핑거프린팅의 결함으로 인한 md5 . 그 밖에 유용한 것이 있으면 id_rsa.pub
서버에서 명령을 실행하고 신뢰할 수 있는 채널을 통해 결과를 얻을 수 있습니다. (이것은 네트워크 채널이 아니므로(펜 드라이브를 한 곳에서 다른 곳으로 물리적으로 가져간다고 상상해 보십시오) ssh-keyscan
문제가 해결되지 않으며 id_rsa.pub는 dropbear 서버의 키이며 서버에서 실행되지 않습니다. 키가 있는 파일은 사용할 수 있지만 서버는 사용할 수 없습니다)
답변1
이름은 id_rsa.pub
사용자의 공개 키와 유사합니다. 이는 호스트 키 저장 known_hosts
과 관련이 없습니다. known_hosts
이름에서 알 수 있듯이 호스트 키는 호스트(즉, 컴퓨터)를 인증하는 반면, 사용자 키는 사용자를 인증합니다. OpenSSH의 호스트 공개 키는 일반적 /etc
으로 또는 /etc/ssh
에 있으며 ssh_host_rsa_key.pub
.
Dropbear에는 개인 키가 포함된 파일이 있습니다. 공개 키(Dropbear 및 OpenSSH 호환 형식)를 추출하려면 다음을 실행하세요.
dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y | sed -n 2p >host_key.pub
known_hosts
OpenSSH에는 파일 업데이트 명령이 제공되지 않는 것 같습니다 . 수동으로 수행하는 것은 쉽습니다.
echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts
호스트 이름을 해시하려면( known_hosts
파일을 읽는 사람이 이러한 서버의 이름을 알 수 없도록 하기 위해 - 이는 매우 작은 개인정보 보호 이득임) ssh-keygen -H
나중에 실행하십시오.