linux - 更改用户并在 1 行中运行 ssh 指令

标签 linux ssh

我正在尝试将我的用户更改为不需要密码即可运行 ssh 指令的用户,然后正是这样做,运行 ssh 指令。我现在拥有的是:

sudo su - testUser ssh testUser@server2 'cat /home/randomUser/hola.txt'

但我得到了答案:

/usr/bin/ssh: /usr/bin/ssh: cannot execute binary file

如果我将指令放在一个名为 testit 的不同文件中,如下所示:

ssh testUser@server2

cat /home/randomUser/hola.txt

然后我跑:

sudo su - testUser < testit

有效!但我需要使用单行指令,有人知道我应该更改什么才能使其有效吗?

最佳答案

sudo su - testUser

你为什么不使用 sudo -u testUser 因为它应该被使用?

但无论如何,您正在使用的工具的手册页是一个好的开始。对于 sudo:

sudo [...] [command]

这看起来不错,适合您的示例。

对于su:

su [options] [username]

Ola ... su 没有任何参数 command,除非你也提供 -c 开关,它也写在手册页。而且是[option],所以它应该在[username]之前!像这样的东西应该可以完成这项工作:

sudo su -l -c "ssh testUser@server2 'cat /home/randomUser/hola.txt'" testUser

但正如我已经提到的,仅使用 sudo 可以显着简化它:

sudo -i -u testUser "ssh testUser@server2 'cat /home/randomUser/hola.txt'"

关于linux - 更改用户并在 1 行中运行 ssh 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328561/

相关文章:

git - 启动 GitBash 时未执行 .bashrc

linux - travis-ci - ssh-add 询问我的密码

opengl - ssh opengl错误:X错误的错误请求BadRequest

git - "Permission denied (publickey)."Git错误

java - 如何在 Linux 中设置规范的主机名?

linux - Bash 脚本杀死所有程序并在一分钟后重新启动它们

linux - 如何使用批处理文件在putty上执行保存在文本文件中的Unix命令

linux - 存储在变量中的 ssh 输出以测试其值

php - 加载 gRPC 二进制模块失败(gRPC php 教程)

python key() 错误