ssh-copy-id이지만 반대

ssh-copy-id이지만 반대

ssh-copy-id원격 컴퓨터 사용자 이름/비밀번호가 있는 경우 공개 SSH 키를 다른 컴퓨터의 승인된 키에 넣는 방법을 이해합니다 .

그 반대는 어떻게 가능합니까? 일부 원격 시스템의 공개 키(공개 키이므로 비밀번호가 필요하지 않음)를 가져와 내 인증 키에 넣습니다(다시 말하지만 내 키이므로 비밀번호가 필요하지 않음).

답변1

ssh ${remote_host} cat .ssh/id_rsa.pub | tee -a $HOME/.ssh/authorized_keys

답변2

두 가지 유형의 SSH 키를 병합하고 있습니다. 구조는 비슷하지만 목적은 매우 다릅니다.

귀하의 공개 키는사용자 키: 그렇긴 하지만공공의즉, 비밀로 유지할 필요가 없습니다.출판됨어떤 방법으로든 자동으로. 웹페이지에 올리고 싶다면 그렇게 할 수 있습니다. 하지만 스스로 해야 합니다.

반면에 컴퓨터별 키는 다음과 같습니다.호스트 키. 로그인 시 자동으로 교환되므로 고려할 수 있습니다.출판됨. 그러나 호스트 키는 파일에 들어 가지 않고 대신 authorized_keys들어갑니다 . known_hosts일부 컴퓨터의 호스트 키만 있으면 누구에게도 어떤 종류의 액세스도 제공되지 않습니다. SSH 클라이언트는 연결 시 해당 컴퓨터가 이전과 동일하다는 것을 확인할 뿐입니다.

시스템 관리자가 HostbasedAuthentication에서 활성화하도록 선택 /etc/ssh/sshd_config하고 원격 호스트의 호스트 키가 시스템 전체 파일에 있는 경우 원격 호스트의 이름을 에 추가 하거나 허용 /etc/ssh/ssh_known_hosts할 수 있습니다./etc/hosts.equiv/etc/ssh/shosts.equiv모든 사람해당 원격 호스트에서 비밀번호를 입력하지 않고 로컬 호스트의 해당 계정에 로그인합니다. 시스템 관리자도 IgnoreRhosts로 설정 no하면 일반 사용자로서 원격 호스트의 호스트 키를 사용자 ~/.ssh/known_hosts및 사용자 이름@호스트 이름을 ~/.rhosts또는 ~/.shosts. 하지만 이 인증 방법은 기본적으로 비활성화되어 있습니다.

(왜 ~/.shostsand 와 같은 두 개의 파일이 있다고 ~/.rhosts생각하시나요? 글쎄요, 그 이유는 .rhosts파일이 암호화되지 않은 오래된 rsh// rlogin/ 도구에서 사용되었고 SSH는 원래 이를 대체하기 위해 설계되었기 때문 입니다 rexec. 또는 및 도구를 모두 통한 액세스를 허용하고 싶 거나 SSH 액세스만 허용하려는 경우)rcp.rhostshosts.equivrshssh.shostsshosts.equiv

답변3

ssh-keyscan을 사용하거나 알 수 없는 호스트에 연결할 때 자동으로 Known_hosts에 키를 추가합니다. 수동으로 수행하려면 아래 명령을 사용할 수 있습니다.

ssh-keyscan hostname >> ~/.ssh/known_hosts

관련 정보