我需要编写一个脚本,以便能够在我们安全的异地实验室的测试服务器上运行cmds。问题是这些测试服务器位于跳跃服务器/跳跃主机的后面。我可以手动键入:
bash$ ssh -A jumphost
jumphost$ ssh server1或者我编辑了我的个人.ssh/config文件以使用跳转主机
ForwardAgent yes
Host server1
ProxyCommand ssh -q jumphost nc <ip of server1> 22才能访问它们。如何在脚本中执行此操作,以使ssh不会在ssh -A跳转时停止/终止?
我试着逃走
ssh jumphost nc <ip of server1> 22 "ls /tmp"或
ssh jumphost nc <ip of server1> 22或
ssh -A jumphost nc <ip> 22但它抱怨协议不匹配。我不能控制跳转主机,所以我不能把脚本/程序放在一个公共的地方供人们使用。我也不认为它会成为一个专门供我们使用的跳转主机。
有没有办法让我通过一个跳转主机运行脚本?提前感谢您的帮助。如果没有办法,我会告诉IT他们需要允许我将脚本复制到跳转主机b/c堆栈溢出方面的专家说需要这样做=)
发布于 2013-06-29 03:30:19
大致是这样的:
ssh -At jumpserver ssh -At server1应该行得通。-t确保在需要的地方分配一个伪tty(在第二个上可能没有必要,但我现在没有一个可以测试它的设置,它不会有什么坏处)。这也有一个好处,当您退出server1时,两个会话都会消失……
发布于 2021-02-09 15:57:49
按如下方式更新~/.ssh/config文件:
Host JumpHost
Hostname 111.255.223.108
User jump-user
IdentityFile ~/Keys/JumpHost.pem
AddKeysToAgent yes
Host PrivateHost
Hostname 120.010.111.166
IdentityFile ~/Keys/my-private-key.pem
User private-user
AddKeysToAgent yes
ProxyJump JumpHost然后在命令行上使用ssh,即ssh PrivateHost
发布于 2021-04-23 16:48:03
没有配置文件,有不同的端口,不同的key,不同的用户:跳转主机端口: 2244,目标主机端口: 2266 (端口只是例子)。如果使用标准端口(22),则可以省略-p/-P选项。
OUTPUT=$(ssh -o ProxyCommand="ssh -W %h:%p $JUMPHOST_USER@$JUMPHOST_IP -p 2244 -i jumphost_key_file" -oStrictHostKeyChecking=accept-new $TARGETHOST_USER@$TARGETHOST_IP -p 2266 -i targethost_key_file 'command')
echo $OUTPUT-oStrictHostKeyChecking选项用于自动接受ECDSA密钥。如果这对您来说是一个安全问题,您应该删除此选项,但第一次需要手动确认。另外,别忘了在sshd_config的跳转主机上允许代理转发。在sshd_config中跳转主机上也可能需要允许TCPForwarding,可能在/etc/sysctl.conf中需要取消注释/启用net.ipv4.ip_forward = 1。
如果要在目标主机上运行本地脚本:
OUTPUT=$(ssh -o ProxyCommand="ssh -W %h:%p $JUMPHOST_USER@$JUMPHOST_IP -p 2244 -i jumphost_key_file" $TARGETHOST_USER@$TARGETHOST_IP -p 2266 -i targethost_key_file 'bash -c' <local_bash_script.sh)
echo $OUTPUTscp也可以像这样使用:
scp -o ProxyCommand="ssh -W %h:%p $JUMPHOST_USER@$JUMPHOST_IP -p 2244 -i jumphost_key_file" -i targethost_key_file -P 2266 local_file_to_copy.txt $TARGETHOST_USER@$TARGETHOST_IP:/tmp/new_file_name.txt注意在scp命令中端口的大写P,而不是在ssh中!如果不想更改文件名,则省略new_file_name.txt。我已经在debian 10上运行了这个程序,如果你不想维护配置文件,我希望这会对你有所帮助。
https://stackoverflow.com/questions/17372177
复制相似问题