mkdir //.ssh:/usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl/Util/Hosts.pm第92行的权限被拒绝

时间:2013-01-28 10:52:10

标签: mod-perl

我在perl cgi文件中使用“Net :: SFTP”将文件从我的开发框中放到Windows M / C中。

手动添加以下新目录(具有0777权限)后一切正常:

bash-4.1$ pwd
/.ssh
-bash-4.1$ cd ..
-bash-4.1$ ls -ltra | grep .ssh
drwxrwxrwx 2 root root 4096 Jan 23 23:57 .ssh

问题(如果我不手动添加上面的目录)这是根据我的理解: Apache正在运行cgi,用户为“nobody”,在通过sftp建立连接后没有权限创建目录,我在日志中收到以下错误消息:

xxx.xxx.net: Reading configuration data /.ssh/config
xxx.xxx.net: Reading configuration data /etc/ssh_config
xxx.xxx.net: Connecting to xxx.xxx.xxx.com, port 22.
xxx.xxx.net: Remote protocol version 2.0, remote software version 5.17 FlowSsh: Bitvise SSH Server (WinSSHD) 5.58: free only for personal non-commercial use^M
Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::Calc at /usr/lib/perl5/site_perl/5.8.8/Crypt/DH.pm line 6
xxx.xxx.net: Net::SSH::Perl Version 1.34, protocol version 2.0.
xxx.xxx.net: No compat match: 5.17 FlowSsh: Bitvise SSH Server (WinSSHD) 5.58: free only for personal non-commercial use^M.
xxx.xxx.net: Connection established.
xxx.xxx.net: Sent key-exchange init (KEXINIT), wait response.
xxx.xxx.net: Algorithms, c->s: 3des-cbc hmac-sha1 none
xxx.xxx.net: Algorithms, s->c: 3des-cbc hmac-sha1 none
xxx.xxx.net: Entering Diffie-Hellman Group 1 key exchange.
xxx.xxx.net: Sent DH public key, waiting for reply.
xxx.xxx.net: Received host key, type 'ssh-dss'.
xxx.xxx.net: Permanently added 'xxx.xxx.xxx.com' to the list of known hosts.
**mkdir //.ssh: Permission denied at /usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl/Util/Hosts.pm line 92**

我尝试用互联网上给出的不同方法来解决这个问题,但没有什么对我有用。

有人可以建议可能的解决方案吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题,你说这是权限问题。当nobody进程尝试连接到远程服务器时,它希望将远程主机密钥写入文件。这是您的错误消息中失败的步骤(Hosts.pm第92行)。

我的解决方案是为NET :: SFTP创建一个无人写入的位置来编写known_hosts文件,并在构建NET :: SFTP连接之前指定该位置。

$ENV{HOME} =  '/nobody/writable/location/';

您可以在http://www.perlmonks.org/?node_id=599078

找到有关此问题的更多信息