代码之家  ›  专栏  ›  技术社区  ›  VaTo

Fish shell新函数:“ssh:未找到命令”

  •  0
  • VaTo  · 技术社区  · 7 年前

    function test 
         ssh -t testuser@server1 'sudo ssh -t testuser@server2' 
    end
    

    当我执行它时,我得到以下错误 ssh: command not found

    2 回复  |  直到 7 年前
        1
  •  0
  •   m0j0    7 年前

    在命令行中,如果键入以下命令,您会看到什么?

    ssh -t testuser@server1 sudo which ssh 
    

    如果SSH不在根目录的路径中,则可能需要指定完整路径,例如:

    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
    
        2
  •  0
  •   VaTo    7 年前

    ~/.config/fish/functions

    我刚刚创建了一个名为myfunction.fish的文件,并在该文件中粘贴了函数定义:

    function myfunction 
         ssh -t testuser@server1 'sudo ssh -t testuser@server2' 
    end
    

    保存它,退出鱼,现在该功能是永久的。