ssh-copy-id mas reverso

0

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

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

    
por user1032531 25.11.2017 / 06:16

3 respostas

4

Você está confundindo dois tipos diferentes de chaves SSH lá. Embora sejam semelhantes em estrutura, eles têm um propósito muito diferente.

Sua chave pública é o que poderia ser chamado de chave de usuário : embora seja pública , ou seja, não há necessidade de mantê-la em segredo, não publicado automaticamente por qualquer meio. Se você 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 chamadas chaves do host . Esses são trocados automaticamente no login, então eles podem ser considerados publicados . Mas as chaves de host não entram em um arquivo authorized_keys : elas entram em known_hosts . Apenas ter a chave de host de alguma máquina não dará a ninguém qualquer tipo de acesso: 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 HostbasedAuthentication in /etc/ssh/sshd_config e a chave do host do host remoto estiver no arquivo /etc/ssh/ssh_known_hosts do sistema inteiro, será possível adicionar o nome do host remoto a /etc/hosts.equiv ou /etc/ssh/shosts.equiv para permitir que todos nesse host remoto registrem contas correspondentes no host local, sem digitar uma senha. Se o administrador do sistema também definir IgnoreRhosts para no , 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 para seu ~/.ssh/known_hosts e o nome de usuário @ nome do host no seu ~/.rhosts ou ~/.shosts . Mas este método de autenticação está desativado por padrão.

(Por que dois arquivos como ~/.shosts e ~/.rhosts , você acha? Bem, é porque o arquivo .rhosts foi usado pelo antigo não criptografado rsh / rlogin / rexec / rcp de ferramentas, e o SSH foi originalmente criado como substituto imediato para ele. Você usaria .rhosts ou hosts.equiv se quisesse permitir o acesso por meio das ferramentas rsh e ssh e .shosts ou shosts.equiv se você quisesse permitir apenas o acesso SSH.)

    
por 25.11.2017 / 08:59
1
ssh ${remote_host} cat .ssh/id_rsa.pub | tee -a $HOME/.ssh/authorized_keys
    
por 25.11.2017 / 09:33
0

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

ssh-keyscan hostname >> ~/.ssh/known_hosts
    
por 25.11.2017 / 06:37

Tags