EDITAR: Poniendo exactamente lo que se hizo.
Necesito SSH localhost
sin contraseña, la forma habitual de hacerlo (con claves públicas) no 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:~$
Entonces, como puede ver en el último comando, ¡todavía está pidiendo la contraseña! Cómo puedo arreglar eso ?? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Agregar información sobre el 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'.
EDITAR3: Resultado de anuncio 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:
EDITAR4:
Simplemente verificando si los archivos son iguales y el md5sum está de acuerdo
RSAAuthentication yes
yPubkeyAuthentication yes
en su / etc / ssh / sshd_config? ¿Qué muestra ssh -vv localhost? Acabo de probar esto en una caja de 10.04 y no tuve ningún problema ...Respuestas:
Antes que nada, debes entender lo que estás haciendo:
Está copiando la clave pública a
.ssh/id_rsa.pub
través de ssh, al mismo host (eso es lo que es localhost, el mismo host). Si lo reemplazalocalhost
con algún otro host, eso tendría más sentido (pero si está intentando esto por el simple hecho de aprender cómo hacerlo, está bien).Una vez que tenga una copia de su clave pública en el host remoto (o el mismo en el que se encuentra), debe asegurarse de usarla para la autenticación, en su host real, llamando
ssh-agent
/ssh-add
:Luego, si proporcionó una frase de contraseña, se le pedirá que la ingrese después
ssh-add
. Si generó una clave privada sin frase de contraseña, entonces eso es todo.fuente
ssh-add
, edite su pregunta y ponga todo lo que hizo. Cuanta más información proporcione, mejor y más rápida será la respuesta.eval
"?Han descubierto el problema.
Ejecutando el servidor con depuración:
Descubrí que no podía leer la auth_key
Arreglado.
fuente
Haz los siguientes pasos
Use el archivo predeterminado y la frase de contraseña vacía (simplemente presione Intro en los siguientes 2 pasos)
Copie el contenido de ~ / .ssh / id_rsa.pub a ~ / .ssh / optional_keys
Asegúrese de que los siguientes sean los permisos
Además, asegúrese de que los permisos para el directorio .ssh sean. Esto tambien es importante
fuente
authorized_keys
0600 resuelve el problema, mientras que el permiso del.ssh
directorio no tiene ningún efecto en sshing localhostSimplifica la configuración del servidor
Creo que es posible que deba deshabilitar la autenticación basada en contraseña. Este es un sshd_config que uso
Pruebe algo mínimo primero, luego agréguelo ya que necesita capacidades adicionales.
Actualizar:
Verificar registros del servidor
Desde su EDIT3 veo que la autenticación de clave pública falla antes de que el cliente intente la autenticación basada en contraseña. El syslog de su servidor puede contener algunos mensajes de sshd que arrojan algo de luz sobre esto.
Recargar configuraciones modificadas
Recuerde indicar
sshd
para recargar cualquier cambio de configuración. P.ejkill -HUP $(cat /etc/sshd.pid)
fuente
Con respecto a la publicación anterior, mientras enfrento el mismo problema, acabo de cambiar la línea
en el archivo / etc / ssh / sshd_config y funcionó.
Además, quizás sea mejor usar
para recargar los cambios de configuración sshd.
fuente
Otra solución para la función SELinux de Red Hat Enterprise Linux 6.5 que impide que sshd lea $ HOME / .ssh es usar restorecon, consulte mi respuesta aquí /superuser//a/764020/213743 .
fuente
Para mí fue tan simple como
fuente
Tuve el mismo problema, seguí los 3 pasos para crear la contraseña menos iniciar sesión y funciona bien
fuente