让 WordPress 识别我的 SSH 密钥非常困难。我知道密钥本身是有效的,因为我自己用它们 SSH 进入服务器。尽管本教程反复,以及我将在下面引用的一些其他 ServerFault 答案,我似乎无法弄清楚。
我正在使用 Ubuntu 16.04 和 Apache。我有一个名为“jake”且具有 sudo 权限的非 root 用户。
/home/jake/.ssh 的权限如下:
drwx------ 2 jake jake 4096 Aug 12 23:42 ./
drwxr-xr-x 5 jake jake 4096 Aug 10 13:20 ../
-rw-r--r-- 1 jake jake 743 Aug 12 16:21 authorized_keys
-rw------- 1 jake jake 3247 Aug 10 13:58 id_rsa
-rw------- 1 jake jake 743 Aug 10 13:58 id_rsa.pub
-rw-r--r-- 1 jake jake 222 Aug 12 23:42 known_hosts
我认为这与指南相符,指南中说在 .ssh 目录上使用 chmod 700,在 authorized_keys 上使用 0644。我跳过了将密钥限制为仅供 127.0.0.1 使用的步骤,因为我正在使用该密钥通过 SSH 进入服务器。
在 /var/www/html/wp-config.php 的末尾,我有本教程指定的行:
define('FS_METHOD', 'ssh2');
define('FTP_PUBKEY','/home/jake/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/jake/.ssh/id_rsa');
define('FTP_USER','jake');
define('FTP_PASS','');
define('FTP_HOST','127.0.0.1:22');
本教程底部确实有一些建议,例如检查权限 - 但我检查了,虽然我肯定不是 Linux 专家,但我个人认为没有什么问题。此外,我尝试研究其他答案 -此用户在带有 Nginx 的 CentOS 上,所以我不确定它有多相关,但可接受的答案是让 Web 服务器拥有 id_rsa 和 id_rsa.pub 文件 - 当我尝试执行chown www-data:www-data id_rsa
(和 id_rsa.pub)时,它并没有什么区别。另一个问题没有可接受的答案,但唯一得到赞同的答案是运行chmod g-r wp_rsa
,但这也没有什么区别。
答案1
默认的 ssh 模块似乎不起作用。如果您的密钥受密码保护,它将失败。从论坛来看,此模块一直存在问题。有些问题似乎与 PHP5 中的 libssh2 支持问题有关。它似乎在 PHP 7 中再次出现问题。
SSH SFTP 更新程序支持对我来说确实有用。我已经安装了版本 0.7.1 | 作者:TerraFrost