Known_hosts에 public is_rsa.pub를 자동으로 추가합니다. 방법은 무엇입니까?

Known_hosts에 public is_rsa.pub를 자동으로 추가합니다. 방법은 무엇입니까?

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_hostsOpenSSH에는 파일 업데이트 명령이 제공되지 않는 것 같습니다 . 수동으로 수행하는 것은 쉽습니다.

echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts

호스트 이름을 해시하려면( known_hosts파일을 읽는 사람이 이러한 서버의 이름을 알 수 없도록 하기 위해 - 이는 매우 작은 개인정보 보호 이득임) ssh-keygen -H나중에 실행하십시오.

관련 정보