2014-07-08 29 views
18

Pod tytułem otrzymuję następujące ostrzeżenie, gdy próbuję przejść pod numer scp przez tunel ssh. W moim przypadku nie mogę scp bezpośrednio na foo, ponieważ port 1234 na urządzeniu foo jest przekierowywany na inny pasek urządzenia w sieci prywatnej (a pasek to maszyna, która daje mi tunel do 192.168.1.23).Pierwsze stty: standardowe wejście: niewłaściwe ioctl dla urządzenia podczas korzystania ze scp przez tunel ssh

$ # -f and -N don't matter and are only to run this example in one terminal 
$ ssh -f -N -p 1234 [email protected] -L3333:192.168.1.23:22 
$ scp -P 3333 foo.py [email protected]: 
[email protected]'s password: 
stty: standard input: Inappropriate ioctl for device 
foo.py           100% 1829  1.8KB/s 00:00 

Czy ktoś wie, dlaczego może być coraz to ostrzeżenie o Inappropriate ioctl for device?

Odpowiedz

40

Mam dokładnie ten sam problem, gdy zawarte następujący wiersz na moim ~/bashrc:

stty -ixon 

Celem tej linii było umożliwienie korzystania z Ctrl-s in reverse search of bash.

This link has a solution (niedostępne)

Web Archive version of the above link

'stty' odnosi się do tty, które masz na interaktywnych sesji logowania. .kshrc jest wykonywane dla wszystkich sesji, łącznie z tymi, w których stdin nie jest a tty. Rozwiązanie, inne niż przeniesienie go do twojego .profile, to uzależnić wykonanie od tego, czy jest to interaktywna powłoka.

There are several ways to check for interecative shell. Poniższa rozwiązuje problem dla bash:

[[ $- == *i* ]] && stty -ixon 
+2

Wyjaśnienie "[[$ - = * i *]]" znaleźć tutaj (ja na pewno potrzebował): http://stackoverflow.com/questions/31155381/what -does-i-mean-in-bash/31155446 –

+0

Cieszymy się, że wkleiłeś tekst z linku, ponieważ wygląda na to, że link jest już martwy, a niektóre szybkie wyszukiwanie nie powoduje utworzenia dla niego nowego adresu URL. – Randall

+0

@Załóż link rzeczywiście nie żyje. Mam jednak nadzieję, że jest to tymczasowe, jak wspomniano na [ich stronie głównej] (http://gmane.org/). – mMontu