无法在单个命令中同时使用 `ssh` 和 `docker exec`

无法在单个命令中同时使用 `ssh` 和 `docker exec`

我想ssh进入运行 Docker 引擎的远程服务器,然后以交互模式进入docker exec。我想一次性完成所有操作。bashmy-nice-container

我从本地计算机执行此操作:

ssh my-site-with-a-docker-engine.example.com docker exec -it my-nice-container bash

我收到此错误:“输入设备不是 TTY”

问题:我怎样才能强制ssh通知对方我们确实是一个交互式终端?

注1:

如果我执行此命令“splitted”,它会起作用:

  1. 我先来ssh
  2. 然后我从里面ssh输入docker exec

笔记2:

非交互式命令效果很好。例如,这个命令有效:

ssh [email protected] docker ps -a

答案1

找到了。是的-t。第一次查看手册页https://linux.die.net/man/1/ssh搜索“终端”和“交互式”这两个词并没有解决,这就是我问的原因。

然后我发现“-t强制伪tty分配”。

已检查此操作是否有效:

ssh -t my-site-with-a-docker-engine.example.com docker exec -it my-nice-container bash

相关内容