Não use ssh-copy-id
se você já tiver uma chave pública funcional. Faça algo assim:
ssh -i ~/.ssh/old_key [email protected] 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/new_key.pub
Vamos supor que a senha sobre o ssh em um servidor está desativada e eu tenho a chave privada no arquivo "old_key.pem" para o qual o servidor já possui a chave pública.
Agora eu criei um novo par de chaves como "new_key.pub" e "new_key.pem" e eu quero enviar esta chave .pub para o servidor usando "old_key.pem" e não a senha. É possível fazer isso? Se sim, como?
O problema que estou enfrentando é que o parâmetro -i
é usado por "new_key.pub" e agora não posso usar "old_key.pem" para me autenticar.
Não use ssh-copy-id
se você já tiver uma chave pública funcional. Faça algo assim:
ssh -i ~/.ssh/old_key [email protected] 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/new_key.pub
De como eu li os documentos, se você usar ssh-agent
, ssh-copy-id
irá instalar todas as chaves lá que ainda não funcionam, então isso deve funcionar (mas eu não testei):
# spawn a new agent for this so we know it's not keeping keys
$(ssh-agent)
# add keys
ssh-add new-key.pem old-key.pem
# check if those keys made it in
ssh-add -l
# and now add extra keys
ssh-copy-id user@remote
# stop the extra ssh-agent
kill $SSH_AGENT_PID
Tags ssh