我正在尝试创建一个将我连接到ssh服务器,然后变成su,然后再ssh到另一台服务器的函数,所以我执行了以下操作:
function test
ssh -t testuser@server1 'sudo ssh -t testuser@server2'
end
执行它时,出现以下错误ssh: command not found
但是当我直接在终端上执行它时,它没有问题。
答案 0 :(得分:0)
这听起来像是server1上的路径问题。
在命令行中,如果键入以下内容,您会看到什么?
ssh -t testuser@server1 sudo which ssh
如果SSH不在root的路径中,则可能需要指定完整路径,例如:
ssh -t testuser@server1 sudo /usr/bin/ssh testuser@server2
当然,您可能需要调整路径以匹配您的环境。
此外,如果您尝试从server1的根目录连接到server2,可以直接将ssh直接连接到root @ server1吗?如果是这样,您也许可以使用OpenSSH 7.3附带的“ ProxyJump”功能。这取决于以root身份远程登录的能力,根据您的环境,这可能不是一种选择。
ssh -J root@server1 testuser@server2
答案 1 :(得分:0)
当我将其中每个添加到fish函数文件夹时,我的问题已解决:
〜/ .config / fish /功能
我刚刚创建了一个名为myfunction.fish的文件,并在该文件的内部粘贴了函数定义:
function myfunction
ssh -t testuser@server1 'sudo ssh -t testuser@server2'
end
保存它,退出鱼,现在该功能是永久性的。