没有 tty 的 ssh 命令挂起

没有 tty 的 ssh 命令挂起

我正在尝试通过运行以下命令从本地计算机向 AWS 实例执行一个简单的 ssh 远程命令:

ssh -i /my/key.pem ec2-user@<myhost> 'ls -l'

当我执行此操作时,命令返回退出代码 255,并且它使进程挂在 ec2 实例上sshd: ec2-user [priv]

如果我用 tty 运行它

ssh -t -i /my/key.pem ec2-user@<myhost> 'ls -l'

它可以工作。即使'ls -l不需要用户输入,为什么它仍然需要 tty,为什么它会让该进程挂起?

答案1

通常这种情况发生在 X11 窗口转发的情况下 - 不确定为什么 ls 会发生这种情况,但设置 DISPLAY 在过去对我有帮助:

DISPLAY=:0 ssh -i ...

相关内容