En realidad, no necesito ejecutar el siguiente comando, y estoy al tanto de las teclas ssh si quisiera iniciar sesión sin escribir una contraseña. Me gustaría saber cómo ssh
parece eludir la redirección de mi archivo.
Ejecutando el siguiente comando, ssh
me pide una contraseña:
ssh [email protected] > /dev/null 2> /dev/null < /dev/null
¿Como funciona esto? stdin
, stdout
y stderr
todos son redirigidos, pero ssh
todavía se las arregla para imprimir un mensaje en mi pantalla y leer lo que escribo. Intenté agregar el ssh
argumentos -t -t
y -T
(no ambos a la vez), para habilitar o deshabilitar la asignación de pseudo-tty, pero no hizo ninguna diferencia.
También intenté cerrar todas las entradas y salidas de esta manera, aunque no sé si lo escribí correctamente. Aún así, ssh
solicita una contraseña:
(exec 0<&- 1<&- 2<&- 0>&- 1>&- 2>&-; ssh [email protected])
Respuesta aceptada:
Desde OpenSSH readpassphrase.c, línea 75:
/*
* Read and write to /dev/tty if available. If not, read from
* stdin and write to stderr unless a tty is required.
*/
El programa lee y escribe el TTY directamente, por lo que no es posible deshabilitar la entrada directa simplemente cerrando las tuberías estándar de entrada y salida. Debe decirle al cliente SSH que use una contraseña proporcionada o haga lo que sugiere @muru.