Estoy tratando de conectarme a la máquina uno con ssh y luego a otra máquina dos con ssh, pero recibo este error.
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
¿Por qué?
Respuesta aceptada:
De manera predeterminada, cuando ejecuta un comando en la máquina remota usando ssh, no se asigna un TTY para la sesión remota. Esto le permite transferir datos binarios, etc. sin tener que lidiar con las peculiaridades de TTY. Este es el entorno proporcionado para el comando ejecutado en computerone
.
Sin embargo, cuando ejecuta ssh sin un comando remoto, SÍ asigna un TTY, porque es probable que esté ejecutando una sesión de shell. Esto es esperado por ssh [email protected]
comando, pero debido a la explicación anterior, no hay TTY disponible para ese comando.
Si quieres un shell en computertwo
, use esto en su lugar, lo que forzará la asignación de TTY durante la ejecución remota:
ssh -t [email protected] 'ssh [email protected]'
Esto suele ser apropiado cuando finalmente ejecuta un shell u otro proceso interactivo al final de la cadena ssh. Si iba a transferir datos, no es apropiado ni obligatorio agregar -t
, pero cada comando ssh contendría un comando de producción o consumo de datos, como:
ssh [email protected] 'ssh [email protected] "cat /boot/vmlinuz"'