Pseudo-terminal will not be allocated because stdin is not a terminal

       最近在使用python调用shell脚本,shell脚本再调用docker容器内的脚本时,会报出如题目所示错误,原因是SSH 连接失败,可能是由于远程主机拒绝了连接或者 SSH 服务没有在指定的端口上运行。错误中的 Pseudo-terminal will not be allocated because stdin is not a terminal 提示说伪终端不能被分配,这通常是由于尝试在非交互式环境中执行需要伪终端的命令而引发的。

可以通过ssh建立一个伪终端:

$ ssh -t -p  user@hostname "command"

其中:

  • -t 选项表示强制分配伪终端。
  • -p  用于指定端口号。
  • user@hostname 是远程主机的用户名和主机名。
  • "command" 是你想要在远程主机上执行的命令。

使用这个命令,你可以在远程主机上以交互式的方式执行命令,并且指定要连接的端口号。

你可能感兴趣的:(linux,ssh)