10 votos

El carácter de tilde en la contraseña interfiere con el inicio de sesión SSH

Desde mi Mac a veces accedo a máquinas remotas con ssh proporcionando un nombre de usuario y una contraseña.

La contraseña se genera y a veces contiene un ~ . Tan pronto como golpee el ~ en la contraseña, obtengo una especie de subshell(?):

user's Password:
ssh>

¿Hay alguna forma de escapar o eludir esto?

Estoy en MacOS Montery (12.6).

22voto

Desde man ssh

-e escape_char
  Sets the escape character for sessions with a pty (default: `~' ) . 
  The escape character is only recognized at the beginning of a line.
  The escape character followed by a dot (`.' ) closes the connection;
  followed by control-Z suspends the connection; and followed by
  itself sends the escape character once. Setting the character to ``none''
  disables any escapes and makes the session fully transparent

Así que correr ssh -e none user@host debería evitar el problema.

9voto

Cuando se le pida la contraseña, introduzca un carácter arbitrario como x e inmediatamente retrocede, luego pon tu contraseña. Este enfoque funciona en cualquier nivel de anidamiento, y le permitirá mantener los escapes habilitados, para que pueda seguir utilizándolos más adelante en la sesión si lo desea.

9voto

dsara Puntos 28

Según mis pruebas locales, esto sólo debería ocurrir si la tilde es el primer carácter después de pulsar intro. Puedes introducir una tilde literal simplemente pulsando dos veces. La primera será capturada por ssh y la segunda pasará.

Puedes comprobarlo tú mismo haciendo:

$ read answer
~~this is a string~~
$ echo $answer
~this is a string~~

Se vuelve más complicado si tus sesiones ssh están aún más profundamente anidadas. En esos casos, necesitarías una tilde más por cada nivel anidado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X