公钥和私钥对用户不正确

我已经按照这个教程 (在几个VPS上为我工作)configuration一个安全的方式来安装和更新Wordpress中的主题和插件。 基本上:

sudo adduser wp-user cd /var/www sudo chown -R wp-user:wp-user /var/www/ sudo su - wp-user ssh-keygen -t rsa -b 4096 exit sudo chown wp-user:www-data /home/wp-user/wp_rsa* sudo chmod 0640 /home/wp-user/wp_rsa* sudo mkdir /home/wp-user/.ssh sudo chown wp-user:wp-user /home/wp-user/.ssh/ sudo chmod 0700 /home/wp-user/.ssh/ sudo cp /home/wp-user/wp_rsa.pub /home/wp-user/.ssh/authorized_keys sudo chown wp-user:wp-user /home/wp-user/.ssh/authorized_keys sudo chmod 0644 /home/wp-user/.ssh/authorized_keys sudo nano /home/wp-user/.ssh/authorized_keys 

from =“127.0.0.1”ssh-rsa …

 sudo apt-get update sudo apt-get install php5-dev libssh2-1-dev libssh2-php sudo nano /var/www/wp-config.php 

加:

 define('FTP_PUBKEY','/home/wp-user/wp_rsa.pub'); define('FTP_PRIKEY','/home/wp-user/wp_rsa'); define('FTP_USER','wp-user'); define('FTP_PASS',''); define('FTP_HOST','127.0.0.1:22'); 

最后:

 sudo service apache2 restart 

出于某种原因,我得到的消息:

公钥和私钥对于wp-user不正确

寻找答案,我已经看到了这个问题 ,但没有答案为我工作。

首先,我把这些文件放到/home/wp-user目录下,但也尝试进入/home/wp-user/.ssh 。 这就是我现在所拥有的:

 ls -la /home/wp-user/.ssh drwx------ 2 wp-user wp-user 4096 Mar 1 15:02 . drwxr-xr-x 3 wp-user wp-user 4096 Mar 1 14:58 .. -rw-r--r-- 1 wp-user wp-user 742 Mar 1 15:02 authorized_keys -rw-r----- 1 wp-user www-data 3247 Mar 1 14:58 wp_rsa -rw-r----- 1 wp-user www-data 742 Mar 1 14:58 wp_rsa.pub 

和:

 define('FTP_PUBKEY','/home/wp-user/.ssh/wp_rsa.pub'); define('FTP_PRIKEY','/home/wp-user/.ssh/wp_rsa'); define('FTP_USER','wp-user'); define('FTP_PASS',''); define('FTP_HOST','127.0.0.1:miCustomPortForSSH'); 

每次尝试连接时,我都可以在auth.log上看到这个输出:

 Mar 1 14:37:51 vpsxxxx sshd[2430]: Set /proc/self/oom_score_adj to -800 Mar 1 14:37:51 vpsxxxx sshd[2430]: Connection from 127.0.0.1 port 56103 Mar 1 14:37:51 vpsxxxx sshd[2430]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth] 

每次不同的端口:

 Mar 1 14:38:16 vpsxxxx sshd[2435]: Set /proc/self/oom_score_adj to -800 Mar 1 14:38:16 vpsxxxx sshd[2435]: Connection from 127.0.0.1 port 56128 Mar 1 14:38:16 vpsxxxx sshd[2435]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth] 

我使用的是Apache2和Nginx作为代理服务器,但是日志文件没有透露任何东西。 任何想法?

它看起来像私人密钥太开放,因为它是可读的。 尝试删除组读取权限

 chmod gr wp_rsa 

看看这是怎么回事

第一张海报是一半的权利。 如果所有者组以外的任何东西都可读,SSH将拒绝您的私钥。 但是,如果wp-user是所有者,只有所有者可以读取私钥,那么服务器将无法读取它,并且无法使用Web界面。 所以你必须改变公共所有者的私人密钥。 这是你如何解决这个问题。

 sudo chown www-data:www-data /home/wp-user/wp_rsa* sudo chmod 600 /home/wp-user/wp_rsa 

为了保护你之后的post的作者,这篇文章是为Ubuntu 12.04编写的,我知道在我的情况下我有一个14.04安装。

此外,Ubuntu 14.04和Wordpress v4.2.2仅需要FYI就不需要安装额外的库和修改wp-config.php文件。

如果您使用的是php_admin_value open_basedir指令,则密钥需要位于所列path中包含的目录中。

我遇到了同样的错误信息。 在原来的问题@Manolo没有使用密码,但我是。 在没有密码的情况下生成了ssh密钥之后,我能够得到它的工作。

根据https://codex.wordpress.org/Editing_wp-config.php#Enabling_SSH_Upgrade_Access “build议使用不是通过密码保护的私钥。已经有许多报告称,通过短语保护的私钥不起作用正确的“。