我正在为我的一些用户设置以下内容。
用户在这两台机器上都有帐户,他们从B到A手动使用ssh,例如输入ssh A并在A上工作,他们的~/.ssh/config看起来像:
Host *
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%在B上运行其他东西时,它们还(间接地)运行命令,比如ssh -tt A xxx (其中xxx是一些复杂的东西),因为在对B做任何事情时,它都需要找到一些需要以这种方式找到的东西。感谢控制大师,他们不会一直被密码请求所困扰(机器A不在我的控制之下,也不接受基于密钥的登录)。注意,xxx调用了一些如果我不使用-tt就无法工作的代码。您可能会声称这样的代码被破坏了,我可能也同意,但是强迫tty使它快乐。
所有操作都很好,但是它们打开的从B到A的手动连接会被消息乱扔(而且几乎无法使用):
process_mux_new_session: tcgetattr: Inappropriate ioctl for device这似乎与https://stackoverflow.com/questions/1495776/和https://bugzilla.mindrot.org/show_bug.cgi?id=1686有关
有没有办法让这些消息保持沉默,使第一个连接有用,而不需要打开另一个连接呢?
发布于 2017-05-22 21:33:14
将@MarkWagner的评论提升到回答的状态。
根据bug中的修补程序,需要将
-q添加到ssh调用中(我不确定哪个调用。)-5月19日19:42
根据一些快速测试,从B到A的手动连接似乎是需要-q的连接
发布于 2017-05-19 20:30:00
我会在服务器上查找MaxSessions -A
grep MaxSessions /etc/ssh/sshd_config和客户机上的~/..ssh/config ControlPersist超时
Host *
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 10m您还可能更喜欢ControlPath ~/tmp/ssh_mux_%h_%p_%r,以防止用户覆盖对方的文件。
此外,控制路径使用主机名'%h‘,这在调用时可能会有所不同。
另一种可能的解决方案是调整终端设置。
ssh server_A TERM=tn3270 /opt/wierd/complex_command.cobol甚至在屏幕https://www.youtube.com/watch?v=hB6Y72DK8mc https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/下运行
https://serverfault.com/questions/851186
复制相似问题