Abra una sesión ssh con un título definido desde la línea de comando

Abra una sesión ssh con un título definido desde la línea de comando

Tengo un pequeño problema al ejecutar PuTTY (desde la línea de comando) con-metroargumento. Por favor ayúdame con esto o sugiere una forma mejor si conoces una :)

El comando (de "Ejecutar"):

putty -ssh user@machine -pw password -m C:\test.txt

Comando "prueba.txt":

PROMPT_COMMAND='echo -ne "\033]0;'$( ifconfig | head -2 | tail -1 | awk '{print $2}')'\007"'

El problema:
Abre la sesión y luego la cierra inmediatamente.

¿Qué se supone que debe hacer? Abrir una sesión ssh desde la línea de comando con un título definido

Gracias.

Respuesta1

Creo que intentaste hacer algo similar aesta respuesta. Pero la cuestión es que los comandos de muestra proporcionados allí deben ejecutarse desde el archivo en el servidor.

No se pueden pasar como comando(s) para ejecutar usando el modificador -m. Este cambio de PuTTYes imitarel comportamiento del cliente SSH de línea de comandos de Linux:

ssh user@foo command

De esta manera, ssh inicia sesión useren el fooservidor, se ejecuta commandallí y simplemente sale. Parece que con -m PuTTY está haciendo exactamente lo mismo.

Mi sugerencia

es preparar un script en el servidor remoto y configurar PuTTY de una manera diferente. En primer lugar, debe crear un archivo con los comandos que desea ejecutar después de iniciar sesión, llamémoslo.title

cat > ~/.title

Luego simplemente escribe, o copia y pega lo que necesites allí, luego presiona Ctrl+D. Por ahora, simplemente probemos configurando el título:

echo -ne "\033]0;PuTTY\007"

Incluso puedes probar lo anterior directamente en la terminal. Si el título de la ventana de PuTTY no se cambia, es probable que su distribución ya esté configurada.variable PROMPT_COMMAND predeterminada. Puede confirmarlo ejecutando los siguientes comandos en la terminal

echo $PROMPT_COMMAND
unset PROMPT_COMMAND
echo -ne "\033]0;PuTTY test\007"

La clave es desarmar el valor actual de PROMPT_COMMANDla variable. Entonces el último comando debería establecer el título de la ventana en PuTTY test.

Mi solución

que me funciona es preparar una sesión en PuTTY, conCuadro "Comando remoto" en la GUIajustado a:

/bin/bash --rcfile ~/.title

Solo recuerde proporcionar el nombre de esta sesión (por ejemplo: SessionName) y presione el botón "Guardar" en la primera página de la configuración de PuTTY, cerca de la lista "Sesiones guardadas" :)

Luego puedes iniciar PuTTY y decirle que cargue esta sesión.

putty -load SessionName -l user -pw password

Sí, es triste, pero no existe un equivalente en la línea de comandos del cuadro "Comando remoto" para una sesión guardada. Por eso hay que superar todos estos obstáculos :(

Versión TL;DR

Suponiendo que realices todos estos pasos correctamente, todo debería funcionar bien:

  • crear ~/.titlescript en la máquina remota
  • prepare una sesión con el comando remoto que ejecute Bash, que se ejecutará~/.title
  • Dígale a PuTTY que cargue la sesión preparada al inicio, especificando el usuario y la contraseña.

Consejo profesional

En lugar de especificar contraseñas en texto claro en la línea de comando (y posiblemente en scripts), debe aprender a usar claves SSH y ejecutar 'Pageant' (agente de autenticación PuTTY) en la bandeja de Windows.

Respuesta2

No tengo un ssh para probarlo ahora perohttp://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html "Si solo desea que la ventana permanezca abierta para que usted también la mire, coloque el modo de suspensión 10 al final de su secuencia de comandos durante una espera de 10 segundos. Si desea usar el shell, úselo exec /bin/bashal final. Shai".

Otros dos enlaces que ofrecen una idea.

PuTTY: ejecute un comando remoto después de iniciar sesión y mantenga el shell en ejecución

¿Cómo elijo lo que aparece en la barra de título de PuTTY desde Linux?

Añadido por

lo siguiente no usa PuTTY, usa openssh en cygwin. El a.aarchivo podría contener ls o comandos para cambiar el mensaje. Es local.

$ ssh 127.0.0.1 "cat | bash" < a.a

relacionado, ver la respuesta que acabo de publicar en:https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments/208952#208952

información relacionada