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.
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? .
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.
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
.
Tags ssh