linux - transferir - Obtención de stty: entrada estándar: ioctl inadecuado para el dispositivo cuando se usa scp a través de un túnel ssh
transferir archivos ssh (1)
Según el título, recibo la siguiente advertencia cuando intento hacer un scp
través de un túnel ssh
. En mi caso, no puedo hacer scp
directamente a foo porque el puerto 1234 en el dispositivo foo se está reenviando a otra barra de la máquina en una red privada (y la barra es la máquina que me está dando un túnel al 192.168.1.23).
$ # -f and -N don''t matter and are only to run this example in one terminal
$ ssh -f -N -p 1234 userA@foo -L3333:192.168.1.23:22
$ scp -P 3333 foo.py ubuntu@localhost:
ubuntu@localhost''s password:
stty: standard input: Inappropriate ioctl for device
foo.py 100% 1829 1.8KB/s 00:00
¿Alguien sabe por qué podría recibir esta advertencia acerca de Inappropriate ioctl for device
?
Tengo exactamente el mismo problema cuando incluí la siguiente línea en mi ~/bashrc
:
stty -ixon
El propósito de esta línea era permitir el uso de Ctrl-s en la búsqueda inversa de bash .
Este enlace tiene una solución (no disponible)
Versión del archivo web del enlace anterior.
''stty'' se aplica a ttys, que tiene para sesiones de inicio de sesión interactivas. .kshrc se ejecuta para todas las sesiones, incluidas aquellas en las que stdin no es un tty. La solución, aparte de moverlo a su perfil .profile, es hacer que la ejecución esté condicionada a que sea un shell interactivo.
Hay varias formas de verificar el shell interecativo . Lo siguiente resuelve el problema para bash:
[[ $- == *i* ]] && stty -ixon