ssh force tty return caracter extra no imprimible

2

Lo sé ^M aparecerá cuando ssh -t, ref1 , pero no entiendo la situación cuando ssh -t en Centos 7.2 (incluso Centos 6.2 está bien, pero no hay diferencia entre las variables del entorno). Alguien sabe acerca de esto? O tal vez relacionado con ref2 ?

$ ssh -t centos72 'echo $HOME' 2>/dev/null|cat -A
^[[?25h^[[0G^[[K^[[?25h^[[0G^[[K/home/user^M$
$ ssh centos72 'echo $HOME' 2>/dev/null|cat -A
/home/user$
$ ssh -t ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user^M$
$ ssh ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user$
schemacs
fuente

Respuestas:

2

Estos son caracteres de control para su terminal o códigos VT100. Se necesitan para que su terminal funcione con el terminal remoto remoto, para mostrar su indicador y otras cosas.

Descripción detallada de las etiquetas de otro Que pregunta y de wikipedia :

  • CSI ?25h : Muestra el cursor.
  • CSI n G : Mueve el cursor a la columna n. (no ANSI.SYS)
  • CSI n K : Borra parte de la línea. Si n es cero (o falta), borre desde el cursor hasta el final de la línea. Si n es uno, borre desde el cursor hasta el principio de la línea. Si n es dos, borra toda la línea. La posición del cursor no cambia.
  • Y una vez más los dos primeros.
  • ^M : Retorno de carro (al final de la línea)

Estas son algunas comprobaciones básicas de seguridad para asegurarse de que el terminal esté listo. Ubuntu los envía probablemente solo después de la consulta desde el terminal local.

Jakuje
fuente
Wow, gracias por la respuesta verbosa.
schemacs
Por lo tanto, no hay forma de deshabilitar esto, excepto apagar -t? ¿Por qué hay diferencias entre CentOS 6.2 y CentOS 7.2?
schemacs
No lo creo. Utilizando -T deshabilitará la asignación de TTY y por lo tanto los caracteres de control. Si solo necesita la salida del comando, no hay razón para crear TTY remoto. Para encontrar una diferencia, probablemente sea necesario revisar el código fuente más o menos. No tengo la máquina CentOS por aquí (6.2 está bastante desactualizada).
Jakuje
aquí github.com/ansible/ansible/blob/v1.9.4-1/lib/ansible/runner/… devolverá una ruta temporal inválida, y github.com/ansible/ansible/blob/v1.9.4-1/lib/ansible/runner/… agregará -tt cuando in_data es None.
schemacs
He presentado un problema aquí: github.com/ansible/ansible/issues/13677
schemacs