一行命令 ssh 到 server2,切换到 server2 中的另一个用户,ssh 到 server3,在 server3 中运行命令并获取输出

一行命令 ssh 到 server2,切换到 server2 中的另一个用户,ssh 到 server3,在 server3 中运行命令并获取输出

因为我只能从 server2(运行 CentOS7 的 Server2)访问 server3,所以我尝试创建一个“模板”命令或脚本,用于执行以下操作:

  1. ssh 到 server2
  2. 切换到 server2 中的另一个用户
  3. ssh 进入 server3
  4. 在server3中运行命令
  5. 获取控制台中打印的输出

我正在寻找的模板有两个部分,第一部分是通过 ssh 进入服务器 2 并切换用户以连接到服务器 3,第二部分是我想要在服务器 3 上运行的实际命令

我在使用此命令时遇到了问题:

ssh -t user1@server2 ‘sudo -u user2 ssh -t user3@server3 “command1; command2; command3”’

它连接到服务器 2 并切换用户,但我一直收到:

cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

当我添加--pty-P标志来克服上述错误时,我得到了-P invalid option

我也尝试过建议,script -q /dev/null但仍然无法在 server3 上运行命令

只要使用 server2 作为跳转/集线器/代理服务器,我愿意接受其他想法以便在 server3 上运行我的命令。

相关内容