通过ProxyCommand远程执行ssh命令时观察到奇怪的输出

时间:2019-05-06 21:18:27

标签: bash shell ssh

团队,我需要执行两个步骤:

  1. SCP将shell脚本文件SCP传输到远程ubuntu linux计算机
  2. 使用PROXYCommand通过SSH会话在远程ubuntu linux计算机上执行此上载的文件,因为我前面有堡垒服务器。

代码:

<input id="txt"/>
<button id="btn">Dispatch "12.50"</button>

以上两个电话都工作正常。我能够上载scp -i /home/dtlu/.ssh/key.key -o "ProxyCommand ssh -i /home/dtlu/.ssh/key.key lab@api.dev.test.com -W %h:%p" /home/dtlu/backup/test.sh lab@$k8s_node_ip:/tmp/ ssh -o StrictHostKeyChecking=no -i /home/dtlu/.ssh/key.key -o 'ProxyCommand ssh -i /home/dtlu/.ssh/key.key -W %h:%p lab@api.dev.test.com' lab@$k8s_node_ip "uname -a; date;echo "Dummy123!" | sudo -S bash -c 'echo 127.0.1.1 \`hostname\` >> /etc/hosts'; cd /tmp; pwd; systemctl status cachefilesd | grep Active; ls -ltr /tmp/test.sh; echo "Dummy123!" | sudo -Sv && bash -s < test.sh" 并运行它,但是困扰我的是在此过程中,我观察到抛出了奇怪的输出。

输出:

test.sh

因此,我不希望/tmp. <<< expected [sudo] password for lab: Showing one Sent message type=method_call sender=n/a destination=org.freedesktop.DBus object=/org/freedesktop/DBus interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 error=n/a Root directory /run/log/journal added. Considering /run/log/journal/df22e14b1f83428292fe17f518feaebb. Directory /run/log/journal/df22e14b1f83428292fe17f518feaebb added. File /run/log/journal/df22e14b1f83428292fe17f518feaebb/system.journal added. 和其他与sh中的命令不对应的行。

1 个答案:

答案 0 :(得分:1)

考虑将-q添加到scp和ssh命令以减少它们可能产生的输出。您还可以根据需要将stderr和stdout重定向到/ dev / null。

例如:

{
scp -q -i /home/dtlu/.ssh/key.key -o "ProxyCommand ssh -i /home/dtlu/.ssh/key.key lab@api.dev.test.com -W %h:%p"  /home/dtlu/backup/test.sh lab@$k8s_node_ip:/tmp/ 

ssh -q -o StrictHostKeyChecking=no -i /home/dtlu/.ssh/key.key -o 'ProxyCommand ssh -i /home/dtlu/.ssh/key.key -W %h:%p lab@api.dev.test.com' lab@$k8s_node_ip "uname -a; date;echo "Dummy123!" | sudo -S bash -c 'echo 127.0.1.1 \`hostname\` >> /etc/hosts'; cd /tmp; pwd; systemctl status cachefilesd | grep Active; ls -ltr /tmp/test.sh; echo "Dummy123!" | sudo -Sv && bash -s < test.sh"
} >&/dev/null