Como usar a segunda chave ssh-copy-id quando o servidor só permite autenticação de chave pública

2

[host MacOS 10.12.6, convidado do Ubuntu 14.04 LTS]

Eu tenho uma configuração de VM local para aceitar apenas a autenticação de chave pública. Até agora, eu tenho usado uma chave que requer que uma senha seja inserida, e o arranjo funciona bem. No entanto, agora preciso configurar um script para executar automaticamente um scp para mim.

Como eu não quero que o script faça uma pausa para que eu forneça a frase secreta nem use expect para fazer isso automaticamente, decidi usar uma segunda chave que não tem uma frase secreta.

Parece-me que ssh-copy-id não é capaz de lidar com essa situação, pois usa o parâmetro -i para informar qual chave carregar e, portanto, não posso especificar com qual chave efetuar login.

Então, minha pergunta é: como obter ssh-copy-id uma segunda chave que seria usada para fazer login? Devo usar ssh-add ?

(À luz da minha inicialização acima com ssh-copy-id , copiei manualmente e adicionei a chave ao meu arquivo authorized_keys.)

    
por gone 31.10.2017 / 07:06

2 respostas

2

ssh-copy-id acrescenta chaves ao arquivo authorized_keys remoto. Para adicionar várias chaves específicas, execute-as uma vez por chave com -i <key-file-name> .

Atualizar

Após seu comentário, acho que entendi sua pergunta errada.

Você deseja usar uma chave para autenticar enquanto instala outra em seu servidor.

ssh-copy-id não oferece uma opção de linha de comando para escolher uma chave para autenticação durante a execução de ssh-copy-id .

Mas passa -o para ssh . Então:

ssh-copy-id -i ~/.ssh/<your-already-existing-id> -o 'IdentityFile ~/.ssh/<your-new-id-to-install>' <servername>

Você também pode usar ssh-agent e, nesse caso, não precisará inserir sua frase secreta ao usar ssh , scp , ssh-copy-id , a.s.o. desde que ssh-agent esteja em execução.

    
por 31.10.2017 / 07:18
1

Usar ssh-add para adicionar sua chave ao agente é definitivamente uma opção.
Caso contrário, acredito que você tenha que configurar uma entrada no arquivo .ssh / config que inclui uma opção IdentityFile , isso dirá ao ssh como se autenticar para aquele servidor e permitir que o ssh-copy-id faça o que ele faz.

    
por 31.10.2017 / 07:26

Tags