我正在尝试使用ssh在远程服务器上执行命令。 该命令是
ssh machine -l user "ls"
这个命令被卡在中间,最后我们必须暂停它。
但是,执行命令ssh machine -l user工作正常,这个命令使我们连接到远程机器。
有人可以请帮助find为什么在远程服务器上的LS不能通过SSH的根本原因。
Lion's Terminal在远程Linux机器上打开vi有困难
Python HTTP SSL服务器接受连接速度慢
在Linux中用于跟踪和可视化pthread行为的工具
我怎样才能转换控制台的input,就像input密码一样
编辑1:这是使用-v切换SSH后的输出
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
打印后Sending command: lsterminal卡住。
错误:libtool – 编译MPI程序时
在Ubuntu 12.04中使用USB来串行 – 缺less/ dev / ttyUSB0
通过Python脚本下载YouTubevideo
如何为Debian / Ubuntu打包Mono应用程序
我怀疑有两件事情正在发生。 首先,ssh服务器可以设置为为用户启动一个特定的命令,而不管你要求运行什么命令。 例如,如果用户被限制为以通常的方式运行SFTP,则会看到此行为。 有两种方法可以建立:
远程服务器的sshd配置文件中的ForceCommand指令。
远程用户的authorized_keys文件中的指令用于正在使用的密钥。
检查这个最简单的方法是登录到远程服务器并检查这两个文件。 或者,您可以启动这些ssh会话之一,让它挂起,然后在远程服务器上运行“ps”以查看正在运行的用户的实际进程。
另一种可能是远程用户在他的.bashrc或其他shell启动脚本中有一行,它引入了一个等待或者等待你输入的东西。 再次,您应该启动其中一个ssh会话,让它挂起,然后在远程服务器上运行“ps”以查看用户正在运行的实际进程。
问题:问题是在命令行还是脚本中发生? 你提示你的密码? 有没有输出? 如果是的话:在这里发布。
并尝试
ssh -v user@host "ls"
要么
ssh -v -l user host "ls"
你会得到额外的输出。 您可以使用-v选项高达3次以获得更高的冗长度。
ssh -vvvl user host "ls"
编辑:
如果我不得不调试这个,我会做以下几点:
去目标机器,你想要'ssh'。
输入“ls”命令“
这是一件不寻常的事情,但'ls'不一定是你期望的。 在目标机器的命令行上,尝试一下
which ls
ssh machine -l user "/bin/ls"
请记住,当通过ssh执行命令时,不会像使用常规登录那样自动获得相同的路径。
最后,检查目标机器上的日志文件。 他们通常驻留在/ var / log(至少在debian下)。
EDIT2:
在Linux机器上,我有时会遇到一个悬挂“ls”命令而没有任何输出的问题。 当我目录中的文件系统以某种方式“无效”的时候,发生了这种情况。 例如,如果有一个android mtpfs的无效挂载,ls命令无法处理和挂起。
所以试着给“ls”一个不同的目录,例如
ssh host -l user "ls /tmp"
如果这样做,然后从命令行检查是否有一个目录或文件有一些无效的状态导致ls命令失败。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。