Bash 从脚本跃点和X11转发执行ssh
我正在处理一个包含计算节点和2个主节点的小型集群。我可以使用ssh-hop从本地机器连接到主机或直接连接到计算节点。以下是本地计算机上的my.ssh/config: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
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,但它不起作用。。。谢谢