当我在下面执行此命令时:
scp -P 36000 hdfs@192.168.0.114:~/tmp.txt SOQ_log.txt
我收到一个错误:
command-line: line 0: Bad configuration option: PermitLocalCommand
有谁知道为什么?
scp
运行程序的副本ssh
以创建通信通道,并使用以下选项运行 ssh:
-oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes
所以这首先解释了“PermitLocalCommand”选项的来源。我将添加它sftp
使用相同的选项来运行 ssh,因此它可能会显示相同的行为。
“PermitLocalCommand”通常是一个有效的 ssh 配置选项。如果您的 ssh 副本抱怨它,那么您的 ssh 副本似乎不是与您的 scp 副本一起使用的正常 ssh 副本。
此服务器故障问题表明该错误可能是由于有人ssh
在您的系统上安装了恶意软件版本(即 rootkit)。该论坛帖子还表明问题是由于更改了 的版本ssh
,该问题已通过删除并重新安装 OpenSSH 客户端实用程序得到修复。
另一种解释是,某人(可能是您的 Linux 发行版维护者)在您的系统上安装了一个 ssh 版本,但删除了该选项,而您却在不知不觉中使用它。或者由于某种原因,您的程序版本非常旧ssh
,不支持该选项。
我的系统是 CentOs 5.9
我面临同样的问题,我发现这是由于 /etc/ssh/sshd_config 中的这个配置行:
# override default of no subsystems
Subsystem sftp /opt/libexec/sftp-server
但我无法运行 /opt/libexec/sftp-server,它由于某种原因坏了
现在它通过重新安装远程openssh-server来解决:
yum erase openssh-server
yum install openssh-server
现在更改为
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
并且 /usr/libexec/openssh/sftp-server 是可运行的
不要忘记执行:
/etc/init.d/sshd restart
有时命令无法解析这种东西
:~/
我将其更改为完整路径。