que pública privadas privada por password llaves llave generar funciona copiar con clave certificado autenticación ssh passwords stdin

pública - que es el certificado ssh



Cómo hacer que ssh reciba la contraseña de stdin (7)

¿Cómo se puede hacer que SSH lea la contraseña de stdin, que no funciona de manera predeterminada?



No se puede con la mayoría de los clientes SSH. Puede solucionarlo utilizando API SSH, como Paramiko para Python. Tenga cuidado de no anular todas las políticas de seguridad.



Un viejo post revivir ...

Encontré esto mientras buscaba una solución para el mismo problema, encontré algo y espero que algún día alguien lo encuentre útil:

  1. Instalar el programa ssh-askpass (apt-get, yum ...)
  2. Establezca la variable SSH_ASKPASS ( export SSH_ASKPASS=/usr/bin/ssh-askpass )
  3. Desde un terminal, abra una nueva conexión ssh sin una variable TERMINAL indefinida ( setsid ssh user@host )

Esto parece lo suficientemente simple como para ser seguro, pero no se verificó aún (solo se usa en un contexto seguro local).

Aquí estamos.


basado en este post puedes hacer:

Cree un comando que abra una sesión ssh usando SSH_ASKPASS (busque SSH_ASKPASS en man ssh )

$ cat > ssh_session <<EOF export SSH_ASKPASS="/path/to/script_returning_pass" setsid ssh "your_user"@"your_host" EOF

NOTA: Para evitar que ssh intente preguntar en tty usamos setsid

Cree un script que devuelva su contraseña (note echo "echo )

$ echo "echo your_ssh_password" > /path/to/script_returning_pass

Hazlos ejecutables

$ chmod +x ssh_session $ chmod +x /path/to/script_returning_pass

intentalo

$ ./ssh_session

Tenga en cuenta que ssh significa shell seguro, y si almacena su usuario, host y contraseña en archivos de texto sin formato, está engañando a la herramienta y creando una posible brecha de seguridad.


No estoy seguro de la razón por la que necesita esta funcionalidad, pero parece que puede obtener este comportamiento con ssh-keygen.

Le permite iniciar sesión en un servidor sin utilizar una contraseña al tener una clave RSA privada en su computadora y una clave pública RSA en el servidor.

http://www.linuxproblem.org/art_9.html


Destilar esta respuesta deja una secuencia de comandos simple y genérica:

#!/bin/bash [[ $1 =~ password: ]] && cat || SSH_ASKPASS="$0" DISPLAY=nothing:0 exec setsid "$@"

Guárdelo como pass , haga un pass chmod +x pass y luego úselo de esta manera:

$ echo mypass | pass ssh user@host ...

Si su primer argumento contiene password: , pasa su entrada a su salida ( cat ); de lo contrario, inicia lo que se presentó después de configurarse como el programa SSH_ASKPASS .

Cuando ssh encuentra con el conjunto SSH_ASKPASS Y DISPLAY , iniciará el programa mencionado por SSH_ASKPASS , pasando user@host''s password: del sistema user@host''s password: