Estoy tratando de SSH desde un NAS a un servidor web usando una clave pública. El usuario NAS es 'root' y el usuario del servidor web es 'backup'
Tengo todos los permisos configurados correctamente y cuando depuro la conexión SSH obtengo: (último pequeño fragmento de la depuración)
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':
Estoy usando el comando:
ssh -v -i /root/.ssh/id_dsa.pub [email protected]
El hecho de que esté pidiendo una frase de contraseña es una buena señal, pero no quiero que solicite esto o una contraseña (que aparece después si presiono 'regresar' en la frase de contraseña)
fuente
Esto me sucedió cuando la clave privada que tenía no estaba en formato OpenSSH.
Originalmente generé mi clave en Windows usando PuttyGen y me devolvieron con lo mismo.
Pude solucionarlo cargando la clave en PuttyGen y haciendo clic en "Conversiones" para obtener el formato OpenSSH.
fuente
Hay algunas cosas
Principalmente, si la CLAVE solicita una contraseña, la clave se generó con ella. En segundo lugar, si el sistema solicita una contraseña después, la clave no se autentica. Es decir, tendrá que regenerar su clave SSH (o cambiarla como lo sugiere @rbtux) y corregir los archivos autorizado_claves.
Los elementos entre llaves son opciones, tipo y tamaño de bit (para decir lo obvio: dsa> rsa, 4096> 1024 - en términos de "seguridad").
Luego, debe agregar la clave pública (.pub) a los archivos
authorized_keys
yauthorized_keys2
(es una idea errónea común decir que el .pub es para uso local, sin embargo, se debe comparar con) en la.ssh
carpeta del servidor .Luego, por su parte, debe asegurarse de que los permisos clave son
chmod 600 id_example
y para evitar escribir todo eso, puede configurar el archivo de configuración:~/.ssh/config
en su cuadro local (que es un esqueleto, puede personalizar esto una tonelada):fuente
$ ssh user@comp -i ~/.ssh/id_rsa.pub
y dijo permisos incorrectos y privados se ignorará la clave ... así que cambié los permisos a 600 como sería id_rsa, y solicitó una frase de contraseña. Entonces, de hecho, pedirá una frase de contraseña si especifica la clave pública, a pesar de que tanto la clave pública como la clave privada no se generaron con una frase de contraseñaPara mí, ya que la clave en sí estaba encriptada, seguí los siguientes pasos:
$ ssh-agent bash
$ ssh-add
$ ssh-add /location/of/key
Para inspeccionar en cualquier momento, la lista de claves cargadas actualmente:
Se pueden obtener más detalles en este enlace
fuente
prueba https://wiki.gentoo.org/wiki/Keychain
Es una especie de envoltura
ssh-agent
yssh-add
Pros: No es necesario ingresar la contraseña repetidamente siempre que no reinicies. Podría ser utilizado en
crontab
.Puede ser de ayuda.
fuente
Podría deberse a que está utilizando una clave DSA que está deshabilitada de manera predeterminada en OpenSSH v7.
Si no puede cambiar el par de claves, una posible solución será decirle a su demonio SSH en webserver.com que acepte esos tipos de Clave, actualizando
/etc/ssh/sshd_config
o equivalente agregando la siguiente líneaY luego reiniciando el servicio
fuente
En Mac OSX, puede agregar su clave privada al llavero usando el comando:
Si su clave privada se almacena en ~ / .ssh y se llama id_rsa:
Luego se le pedirá su contraseña, que se almacenará en su llavero.
fuente