Quiero poder iniciar sesiones de pantalla en servidores remotos desde un solo comando ssh en mi escritorio. Sin embargo, la pantalla parece necesitar un terminal, que no está disponible cuando se ejecuta un comando a través de ssh.
Entonces lo obvio
ssh [email protected] screen "tail -f /var/log/messages"
(como ejemplo) no funciona y da
Must be connected to a terminal.
Quiero que ssh inicie el comando en una pantalla para poder iniciar sesión más tarde y adjuntarlo como lo haría a una sesión de pantalla que habría lanzado manualmente.
ssh
terminal
gnu-screen
tty
Thomas Vander Stichele
fuente
fuente
Respuestas:
Intente usar la opción -t para ssh
Del hombre ssh
fuente
ssh -t user@machine tmux attach
y puedo adjuntar una sesión remota de tmux, pero se mete con la codificación de caracteres. Solo muestra caracteres ascii. ¿Hay alguna solución para esto?Puedes usar:
Eso inicia una pantalla separada con un comando ejecutándose en ella.
fuente
Respuesta tardía, pero esto es lo que hago, hago un alias (llamémoslo t) que hace esto:
Esto le indica
ssh
que deshabilite el reenvío de agente y X11, yscreen
que se adjunte a una sesión en ejecución, inicie una nueva si es necesario, úsela^Z
como comando de ruptura, use UTF-8 y sea inteligente con el terminal.Todo esto significa que puedo abrir una terminal, escribir
t
y abrirá mi sesión de pantalla en $ MYSERVER. Entonces puedo abrir otra terminal, hacer lo mismo y obtener otra ventana para la misma sesión.Es realmente agradable tener múltiples ventanas de terminal en la misma sesión de pantalla para poder ver dos pestañas de pantallas al mismo tiempo.
fuente
t
que es un único host, puede combinarlo con nombres de host en su ssh_config.Al poner lo siguiente en el archivo ~ / .bashrc en mi servidor, se inicia una sesión de pantalla la primera vez que inicio sesión en el servidor, o si ya se está ejecutando, me vuelve a conectar a esa sesión.
Esto me parece muy útil:
fuente
screen -ls
entonces no veo ninguna sesión de pantalla