Seria mais simples usar ssh-copy-id
localmente ou apenas usar cat
para copiar a chave pública para o local authorized_keys
. Heres como eu fiz isso.
- Do local,
ssh
para remoto e use 'ssh-keygen' 'como em sua etapa 1 - Do local,
scp
a chave pública do arquivo remoto para o localtmp.pub
- No local, "" cat tmp.pub > > /home/jimmy/.ssh/authorized_keys
Se você anexar sua própria chave pública ao usuário authorized_keys
do usuário remoto na etapa 1, poderá executar a etapa 2 sem digitar novamente a senha.
Seu ssh
command ssh-copy-id
é executado em um sub-shell no remote sem um tty , então você vê a saída retornada para o seu local, mas sua entrada local não chegar ao sub-shell remoto. Na minha máquina (Debian Wheezy) eu fiz:
yba@tavas:~$ ssh localhost ssh localhost
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/yba/.ssh/id_rsa':
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
yba@tavas:~$
Observe o motivo que é impresso, "Pseudo-terminal não será alocado porque stdin não é um terminal", O resultado é o mesmo se você pressionou a tecla Enter duas vezes no controle remoto sem senha.