Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从脚本跃点和X11转发执行ssh_Bash_Ssh_X11 Forwarding - Fatal编程技术网

Bash 从脚本跃点和X11转发执行ssh

Bash 从脚本跃点和X11转发执行ssh,bash,ssh,x11-forwarding,Bash,Ssh,X11 Forwarding,我正在处理一个包含计算节点和2个主节点的小型集群。我可以使用ssh-hop从本地机器连接到主机或直接连接到计算节点。以下是本地计算机上的my.ssh/config: Host master0 HostName 132.166.138.122 User OJ239416 Host master1 HostName 132.166.138.121 User OJ239416 Host node* ProxyCommand ssh -Y maste

我正在处理一个包含计算节点和2个主节点的小型集群。我可以使用ssh-hop从本地机器连接到主机或直接连接到计算节点。以下是本地计算机上的my.ssh/config:

Host master0
     HostName 132.166.138.122
     User OJ239416

Host master1
     HostName 132.166.138.121
     User OJ239416

Host node*
     ProxyCommand ssh -Y master1 nc %h %p
     User OJ239416
连接到任何计算或主节点后,我可以使用此脚本移动到另一个节点,以保留环境和工作目录:

#!/usr/bin/env sh

if [[ $# != 1 ]]; then
    echo 'USAGE:'
    echo '  sssh remotename'
    exit 1
fi

DIR=$PWD

printenv | sed -e '/_=.*/ d;s/\([^=]\+\)=\(.*\)/export \1="\2"/' > $HOME/.sssh-env.txt
echo "$PWD" > $HOME/.sssh-pwd.txt
ssh -X $1
在my.bashrc中使用此选项:

if [ -f "$HOME/.sssh-env.txt" ]; then
    source $HOME/.sssh-env.txt
    cd $(cat $HOME/.sssh-pwd.txt)
    rm $HOME/.sssh-env.txt
    rm $HOME/.sssh-pwd.txt
fi
什么不起作用:如果我从本地机器连接到一个主节点,然后使用脚本移动到另一个节点,则不会显示

有趣的是,如果我从本地机器连接到一个计算节点,然后用脚本移动到另一个计算节点,它会工作,但如果我从一个计算节点转到一个主节点,它就不会工作

谢谢你的帮助

尝试将ForwardX11Trusted yes添加到配置文件的每个主节中。确定它可以工作。我尝试使用ForwardX11 yes,但它不起作用。。。谢谢