【问题标题】:SSH as another user, run commands and exitSSH 作为另一个用户,运行命令并退出
【发布时间】:2018-03-26 00:22:07
【问题描述】:

假设我是用户 A,我正在尝试以用户 B 的身份进行 SSH,在远程主机上运行多个命令并退出。我无法以自己的身份向主机 SSH。

我编写了以下 bash 脚本,它有两个问题。 1)直到服务器关闭时循环不回显任何内容,并且在服务器启动时从不退出循环 2)当服务器启动并运行脚本时,ssh 会话不会退出

#!/bin/bash

until ssh userB@IP; do
    echo "Trying again..."
done

ssh -tT userB@IP << EOF
  echo 'test' > test
EOF 

请提出任何更正建议。

【问题讨论】:

    标签: bash ssh


    【解决方案1】:

    对于第一个 ssh,考虑

    ssh -o ConnectionAttempts=1 -o ConnectTimeout=10 user@IP exit
    

    所以你不会

    1. 等待太久或尝试太多次才能获取 echo 命令并
    2. 打开一个必须手动关闭的连接。

    【讨论】:

    • 效果很好!谢谢。第二部分还是要搞清楚
    • -T 和 -t 做相反的事情(禁用伪终端,强制伪终端)。我认为您正在做的事情都不需要。试试ssh user@host &lt;&lt; EOF ....
    • 确实如此。当我不使用 -T 时,我会得到这个额外的输出 Pseudo-terminal will not be allocated because stdin is not a terminal. 为了避免这种情况,我一直在使用 -T。当脚本不起作用时,我在网络上的某个地方选择了 -t。
    猜你喜欢
    • 2020-07-05
    • 2019-09-26
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多