获取stty:标准输入:当通过ssh隧道使用scp时,设备的ioctl不合适

时间:2014-07-08 03:02:26

标签: linux ssh scp

根据标题,当我尝试通过scp隧道ssh时,我收到以下警告。在我的情况下,我不能scp直接foo,因为设备foo上的端口1234被转发到专用网络上的另一个机器栏(并且bar是给我隧道到192.168.1.23的机器)。 / p>

$ # -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

有谁知道为什么我会收到关于Inappropriate ioctl for device的警告?

2 个答案:

答案 0 :(得分:52)

当我在~/bashrc上添加以下行时,我遇到了完全相同的问题:

stty -ixon

这一行的目的是允许使用Ctrl-s in reverse search of bash

This link has a solution(不提供)

Web Archive version of the above link

  

'stty'适用于ttys,您可以使用它进行交互式登录会话。   .kshrc是针对所有会话执行的,包括stdin不存在的会话   一个tty。除了将其移至您的.profile之外,解决方案是   使执行成为一个交互式shell。

There are several ways to check for interecative shell。以下解决了bash的问题:

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

答案 1 :(得分:0)

最后,我创建了一个空白的.cshrc文件(用于ubuntu 18.04)。工作