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

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

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

OpenSSH에는 파일을 업데이트하는 명령이 제공되지 않는 것 같습니다 known_hosts. 수동으로 수행하는 것은 충분히 쉽습니다.

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

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

관련 정보