如何检测远程计算机上非bash shell导致的ssh命令失败?

时间:2014-05-13 11:20:29

标签: bash shell ssh ash

似乎这个问题需要一些解释。

当前我写了一个ssh包装器bash函数,它正在远程主机上启动或恢复tmux会话。

它的存在对用户完全透明,您只需键入ssh host,并且因为function ssh() { ... }.bash_profile内定义,这将被执行而不是真正的ssh。

现在,我确实遇到了这个问题,在一小部分主机上,他们没有真正的shell,并且他们有一个伪shell,如果接收到它不理解的命令,则会丢弃ssh连接。示例:NetScaler,Synology(使用ash),CISCO路由器,......

我想要做的是在ssh()包装器中嵌入一些登录,这样它就会在这些机器上停止失败。最初我制作了一个黑名单,但很快就变得难以管理,我需要一个适当的解决方案。

ssh host.example.com
X11 forwarding request failed on channel 0
ash: darwin: unknown operand
ash: md5sum: not found
ash: syntax error: 0x
Connection to host.example.com closed.

>$ echo $?
0

如何从bash函数中解决这个问题?

0 个答案:

没有答案