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

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

답변3

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

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

관련 정보