EDIT: Colocando exatamente o que foi feito.
Eu preciso do SSH para localhost
sem uma senha, a maneira usual de fazê-lo (com chaves públicas) não funciona.
user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
user@PC:~$ ls .ssh/
id_rsa id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
user@PC:~$ ssh-copy-id -i localhost
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh localhost echo 'testing'
user@localhost's password:
user@PC:~$
Então, como você pode ver no último comando, ele ainda está pedindo a senha !!! Como posso consertar isso? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Adicionando algumas informações sobre o sshd
user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
EDIT3: resultado de anúncio de $ ssh -vv localhost
$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password:
EDIT4:
Apenas verificando se os arquivos são iguais e o md5sum concorda
RSAAuthentication yes
ePubkeyAuthentication yes
no seu / etc / ssh / sshd_config? O que mostra ssh -vv localhost? Eu apenas tentei isso em uma caixa de 10,04 e não tinha problema ..Respostas:
Primeiro de tudo, você deve entender o que está fazendo:
Você está copiando a chave pública
.ssh/id_rsa.pub
através do ssh, para o mesmo host (é o localhost, o mesmo host). Se você substituirlocalhost
por outro host, isso faria mais sentido (mas se você estiver tentando fazer isso por aprender a fazê-lo, tudo bem).Depois de ter uma cópia da sua chave pública no host remoto (ou o mesmo em que você está), você deve usá-lo para autenticação, no host atual, chamando
ssh-agent
/ssh-add
:Em seguida, se você forneceu uma senha, será solicitado que ela seja inserida depois
ssh-add
. Se você gerou uma chave privada sem senha, é isso.fonte
ssh-add
, edite sua pergunta e coloque tudo o que fez. Quanto mais informações você der, melhor e mais rápida a resposta.eval
"?Descobriram o problema.
Executando o servidor com depuração:
Eu achei que não era capaz de ler a auth_key
Corrigido.
fonte
Execute os seguintes passos
Use o arquivo padrão e a senha vazia (basta pressionar enter nas próximas 2 etapas)
Copie o conteúdo de ~ / .ssh / id_rsa.pub para ~ / .ssh / allowed_keys
Verifique se as permissões a seguir
Além disso, verifique se as permissões para o diretório .ssh são. Isso também é importante
fonte
authorized_keys
que 0600 resolve o problema, enquanto a permissão do.ssh
diretório não tem efeito sobre SSHing localhostSimplifique a configuração do servidor
Eu acho que você pode precisar desativar a autenticação baseada em senha. Este é um sshd_config que eu uso
Tente algo mínimo primeiro, depois adicione-o quando precisar de recursos extras.
Atualizar:
Verifique os logs do servidor
No seu EDIT3, vejo que a autenticação de chave pública falha antes que o cliente tente a autenticação baseada em senha. O syslog do seu servidor pode conter algumas mensagens do sshd que esclarecem isso.
Recarregar configurações alteradas
Lembre-se de sinalizar
sshd
para recarregar qualquer alteração na configuração. Por exemplokill -HUP $(cat /etc/sshd.pid)
fonte
Em relação ao post acima, apesar de enfrentar o mesmo problema, mudei de linha
no arquivo / etc / ssh / sshd_config e funcionou.
Além disso, talvez seja melhor usar
para recarregar as alterações de configuração do sshd.
fonte
Outra solução para o recurso SELinux do Red Hat Enterprise Linux 6.5 que impede o sshd de ler $ HOME / .ssh é usar o restorecon, veja meu respondedor aqui /superuser//a/764020/213743 .
fonte
Para mim, era tão simples quanto
fonte
Eu tive o mesmo problema, executei 3 etapas para criar a senha menos login e funciona bem
fonte