重定向远程服务器的输出

重定向远程服务器的输出

我正在尝试从远程 ubuntu 服务器上的 centos 本地计算机运行以下命令。但它没有发生。

ssh -t hostname su - -s /bin/bash bar "/home/bar/get_list.sh >> output-1"

运行上面的命令时,我们收到此错误

Connection to 192.11.13.2 closed.

该脚本位于远程计算机,我们希望将输出重定向到本地计算机。

如果我们运行它,它会询问我密码并显示输出数据

ssh -t HOSTNAME su - -s "/bin/bash USERNAME '/path/to/script.sh'"

但是当使用重定向运行时,>>它不会询问我密码并显示连接已关闭

故障排除

我在这里做了一些故障排除,我试图重定向,>>但是当我将其更改为>正在创建文件时output-1

这是该文件的输出

cat output-1
Password:



su: Authentication failure

答案1

Connection to 10.11.143.72 closed. 作为一个案例,表示命令执行成功,但文件是在本地创建的,remote-host而不是在本地创建的。

请将重定向输出放在命令之外,以将结果记录在本地主机中。

ssh -t hostname su - -s /bin/bash bar "/home/bar/get_list.sh" >> output-1

另外,最好使用如下语法所示的命令(我概括了该命令):

ssh -t HOSTNAME su - -s "/bin/bash USERNAME '/path/to/script.sh'" >> inlocal.log

答案2

您编辑的问题目前仍然包含双引号内的重定向,这将迫使它在错误的服务器上创建文件(如果有效)。

不过,我建议您研究在脚本文件上设置 SUID 位。假设您有权在 Ubuntu 目标上进行设置,这意味着它将以 root 身份运行,而无需您实际以 root 身份登录。

我不完全明白为什么您当前的解决方案至少没有将“输入密码:”放入输出文件中。它可能检测到它没有与实时 tty 通信,尽管如果它可以通过 ssh 连接并连接到另一个盒子来做到这一点,我会印象深刻。

相关内容