Procurando uma alternativa eficaz ao ssh-copy-id, que falha se você não tiver a parte privada da chave?

0

Para minha surpresa, descobri que ssh-copy-id falha se você não tiver a parte privada da chave, não sendo útil para implantar outra chave.

Eu estou procurando uma maneira confiável de implantar essas chaves, por isso não deve criar entradas duplicadas se você executá-lo duas vezes.

    
por sorin 30.01.2015 / 17:24

1 resposta

2

Tente isso (novas linhas opcionais):

cat ~/.ssh/id_rsa.pub |
ssh <REMOTE> "cat > tmp.pubkey ;
              mkdir -p .ssh ;
              touch .ssh/authorized_keys ;
              sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys;
              cat tmp.pubkey >>.ssh/authorized_keys;
              rm tmp.pubkey"

Certifique-se de substituir <REMOTE> pelo nome do host ao qual você está tentando se conectar. Altere também id_rsa.pub para qualquer que seja a sua chave de publicação.

Casos abordados por este:

  1. O host remoto pode não ter um diretório .ssh
  2. authorized_keys arquivo pode não existir
  3. Se o authorized_keys existir e você quiser substituir / atualizar / adicionar sua chave pública ssh, isso funcionará sem duplicar a entrada. Este script substitui uma entrada, se já houver uma com o mesmo comentário.
por 30.01.2015 / 17:49

Tags