
Tengo un archivo de claves llamado KEY
, que tiene KEY
y KEY.pub
. Subo el pub a authorized_keys
y agrego el privado con
ssh-add /home/user/.ssh/KEY
Pero cuando intento conectarme , sigue pidiéndome la contraseña.ssh [email protected]
Si genero una clave ssh-keygen
y dejo el nombre de clave predeterminado, subo el pub y cargo el privado,no essolicitar una contraseña.
¿Cuál podría ser el problema?
Respuesta1
Puede obtener el resultado de depuración y probablemente le dirá que no puede autenticarse con (el archivo de clave predeterminado de ssh). La respuesta es decirle a ssh qué clave usar:ssh -vvv [email protected]
~/.ssh/id_rsa
ssh -i /home/user/.ssh/KEY [email protected]
También puede agregar su archivo de claves por host a su archivo .ssh/config
, luego solo tendrá que escribir ssh host.com
y el usuario/clave se seleccionará automáticamente.
Entrada de ejemplo para .ssh/config(Para más información, ver man ssh_config
):
Host mysshserver ssh.host.com
HostName ssh.host.com
User myusername
IdentityFile ~/.ssh/mykeyfile
Explicación de archivos clave de man ssh
:
-i identity_file
Selects a file from which the identity (private key) for RSA or
DSA authentication is read. The default is ~/.ssh/identity for
protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro‐
tocol version 2. Identity files may also be specified on a per-
host basis in the configuration file. It is possible to have
multiple -i options (and multiple identities specified in config‐
uration files).
Respuesta2
Para configurar sus archivos clave correctamente (Cómoaquí), tenga en cuenta lo siguiente:
En caso de que su .ssh
directorio de host y sus archivos no tengan los permisos correctos Y/O su directorio de inicio de usuario remoto no tenga los permisos correctos, ssh seguirá solicitando la contraseña aunque encuentre el archivo clave.
Puede ver si su archivo/archivos clave se ofrecen usandossh -vvv user@host
Salida de ejemplo:
debug1: Offering DSA public key: /Users/<user>/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Verifique tanto el directorio de inicio del usuario remoto como .ssh
los permisos del directorio remoto
Por ejemplo, los permisos deberían ser:
$ls -ld .ssh
drwx------ 2 <owner> <group> 4096 2011-12-29 20:39 .ssh
$ls -ld ~/
drwxr-xr-x 28 <owner> <group> 4096 2011-12-29 20:15 /home/<user>/