我正在尝试通过运行以下命令从本地计算机向 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 ...