Como forçar o ssh-copy-id a ignorar as chaves autorizadas existentes?

5

Edit: Existe um relatório de erros para isso , fazendo o equivalente a esta resposta .

Estou tentando fazer o script da cópia de chaves públicas para várias máquinas. ssh-copy-id verifica se pode efetuar login com a configuração atual antes de copiar, mas infelizmente isso inclui qualquer IdentityFile entradas em ~/.ssh/config . Eu gostaria de ignorar completamente ~/.ssh/config ; Existe alguma maneira de fazer isso, ou forçar força ssh-copy-id a sempre adicionar a chave? Isso não funciona:

ssh-add "$old_key"
ssh-copy-id -i "$new_key" -o "IdentityFile $new_key" "$login"

Isso é semelhante, mas distinto de Como posso faz o ssh ignorar o .ssh / config? .

    
por l0b0 11.02.2015 / 11:07

2 respostas

6

Após verificar o código de ssh-copy-id , este hack funciona:

SSH_OPTS='-F /dev/null' ssh-copy-id [...]

Ainda estaria interessado em uma solução que confia apenas em recursos documentados.

    
por 11.02.2015 / 11:24
2

O uso de SSH_OPTS pode não ser à prova do futuro (acho que o script deve redefini-lo no início por razões de segurança: o comportamento não deve depender de variáveis de ambiente não especificadas, que podem não ter sido limpas em alguns casos). O que você poderia fazer (possivelmente através de uma função de shell):

env PATH="/path/to/special_dir:$PATH" ssh-copy-id [...]

em que /path/to/special_dir apenas contém um script ssh , que pode executar o% realssh com -F /dev/null . Isso é um pouco feio, mas não acho que exista uma maneira limpa com o atual script ssh-copy-id .

    
por 11.02.2015 / 11:35

Tags