ssh-copy-id mas reverso

ssh-copy-id mas reverso

Eu entendo como posso colocar minha chave ssh pública em chaves autorizadas de outras máquinas, ssh-copy-iddesde que eu tenha o nome de usuário/senha das máquinas remotas.

Como é possível o inverso? Obter a chave pública de alguma máquina remota (nenhuma senha será necessária porque é pública) e colocá-la em minhas próprias chaves autorizadas (novamente, nenhuma senha é necessária, pois é minha).

Responder1

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

Responder2

Você está combinando dois tipos diferentes de chaves SSH. Embora sejam semelhantes em estrutura, eles têm uma finalidade muito diferente.

Sua chave pública é o que poderia ser chamado dechave do usuário: embora sejapúblico, ou seja, não há necessidade de manter isso em segredo, não éPublicadosautomaticamente por qualquer meio. Se quiser colocá-lo em sua página da web, claro, você pode fazer isso. Mas você deve fazer isso sozinho.

As chaves por máquina, por outro lado, são chamadaschaves de host. Eles são trocados automaticamente no login, para que possam ser consideradosPublicados. Mas as chaves do host não vão para um authorized_keysarquivo: elas vão para dentro known_hosts. Apenas ter a chave do host de alguma máquina não dará nenhum tipo de acesso a ninguém: apenas permite que seu cliente SSH confirme que a máquina é a mesma de antes quando você se conecta a ela.

Se o administrador do sistema optar por ativar HostbasedAuthenticatione /etc/ssh/sshd_configa chave do host remoto estiver no /etc/ssh/ssh_known_hostsarquivo de todo o sistema, será possível adicionar o nome do host remoto /etc/hosts.equivou /etc/ssh/shosts.equivpermitirtodosnesse host remoto para fazer logon nas contas correspondentes no host local, sem inserir uma senha. Se o administrador do sistema também definir IgnoreRhostscomo no, então você, como usuário comum, poderá permitir que um usuário específico em um host remoto específico acesse sua conta no host local sem uma senha, colocando a chave do host do host remoto em seu ~/.ssh/known_hostse o username@hostname em seu ~/.rhostsou ~/.shosts. Mas este método de autenticação está desabilitado por padrão.

(Por que dois arquivos como ~/.shostse ~/.rhosts, você acha? Bem, é porque o arquivo foi usado pelas antigas ferramentas // / .rhostsnão criptografadas , e o SSH foi originalmente projetado como um substituto imediato para ele. Você usaria ou se você deseja permitir o acesso por meio de ferramentas e e ou se deseja permitir apenas o acesso SSH.)rshrloginrexecrcp.rhostshosts.equivrshssh.shostsshosts.equiv

Responder3

Usando ssh-keyscan ou automaticamente ao conectar-se a um host desconhecido que adicionará a chave aknown_hosts para você. Se quiser fazer isso manualmente você pode usar o comando abaixo:

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

informação relacionada