2013-02-19 127 views
4

我试图使用scp来复制文件。我使用PHP的命令了shell_exec执行此命令:由php执行的scp主机密钥验证失败

scp -i/home/raul/nueva_clave -q -v /home/raul/www/CA/app/tmp/ImagenWeb [email protected]:/home/TA-adm/images/IMG_3846.JPG 2>&1 

服务器地址为127.0.0.1,因为我仍然在开发脚本。我稍后会改变它。

我使用scp而不是PHP的ssh2_scp_send,因为我不想在服务器中写入服务器的密码。相反,我想使用公钥。但是,当我在PHP执行这就是结果:

Executing: program /usr/bin/ssh host 127.0.0.1, user TA-adm, command scp -v -t -- /home/TA-adm/images/IMG_3846.JPG 
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for * 
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 22. 
debug1: Connection established. 
debug1: SELinux support disabled 
Could not create directory '/nonexistent/.ssh'. 
debug1: identity file /home/raul/nueva_clave type 1 
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048 
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048 
debug1: identity file /home/raul/nueva_clave-cert type -1 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1 
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr hmac-md5 none 
debug1: kex: client->server aes128-ctr hmac-md5 none 
debug1: sending SSH2_MSG_KEX_ECDH_INIT 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ECDSA 2d:71:67:30:89:c0:1a:64:41:b5:07:8f:6d:c5:9f:13 
debug1: read_passphrase: can't open /dev/tty: No such device or address 
Host key verification failed. 
lost connection 

如果我执行我在我没有问题终端用户此命令。我想问题是用户没有人执行scp。我正在使用Ubuntu。

+1

密钥文件进行加密,因为你通过scp运行此,还有为重点的解密密码提示没有终端显示在 – 2013-02-19 17:44:14

+0

我已经生成并安装在我的服务器的公钥,因此SCP不会提示输入任何密码。 – Serpes 2013-02-19 18:32:26

+0

然后可能钥匙串被加密,这就是提示。无论哪种方式,错误文本中的'read_passphrase'行基本上都是这样说的。有一些提示输入密码,但不能,因为没有控制终端显示提示。 – 2013-02-19 18:34:11

回答

1

(。由OP在一个问题回答编辑搬到这里见Question with no answers, but issue solved in the comments (or extended in chat)

的OP写道:

它解决。我使用的选项:

-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 

所以scp命令不尝试插入的用户nobody的文件known_host文件的主机(scp不能创建,因为用户文件没有人没有家,也没有~/.ssh)。