我正在尝试使用ssh在远程服务器上执行命令.该命令是
ssh machine -l user "ls"
此命令介于两者之间,最后我们必须暂停它.
但是,执行命令ssh machine -l user可以正常工作,并且此命令使我们连接到远程计算机.
有人可以帮忙弄清楚为什么ssh无法使远程服务器上的ls起作用的根本原因.
编辑1:这是在SSH中使用-v开关后的输出
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending command: ls
打印后发送命令:ls终端卡住.
解决方法:
我怀疑正在发生以下两种情况之一.首先,可以将ssh服务器设置为为用户启动特定命令,而不管您要求运行什么命令.例如,如果用户为restricted to running SFTP in the usual manner,您将看到此行为.可以通过两种方式进行设置:
最简单的检查方法是登录到远程服务器并检查两个文件.或者,您可以启动这些ssh会话之一,使其挂起,然后在远程服务器上运行“ ps”,以查看有问题的用户正在运行哪些实际进程.
另一种可能性是,远程用户在他的.bashrc或其他Shell启动脚本中有一行,这引起了等待或等待您键入内容.同样,您应该启动这些ssh会话之一,使其挂起,然后在远程服务器上运行“ ps”,以查看该用户正在运行的实际进程.
标签:unix,ssh,linux
来源: https://codeday.me/bug/20191120/2043080.html