AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 396886
Accepted
George Reith
George Reith
Asked: 2012-06-09 04:48:09 +0800 CST2012-06-09 04:48:09 +0800 CST 2012-06-09 04:48:09 +0800 CST

Wordpress 找不到 ssh 公钥和私钥对

  • 772

我的服务器配置如下:CentOS 5.8 (final) running Nginx。

我正在使用 Wordpress 插件安装程序的 SSH2 功能。

我已经安装lib2ssh并且可以正常工作(Wordpress 承认它存在)。

我提供给 wordpress的用户(称为playwithbits)是 chroot 并且具有主目录/home/nginx/domains/playwithbits/

公钥和私钥位于目录/home/nginx/domains/playwithbits/keys/中,分别命名为id_rsa.pub和id_rsa。

我已将 的内容复制id_rsa.pub到authorized_keys 位于/home/nginx/domains/playwithbits/.ssh/

我没有为密钥文件设置密码。但是 Wordpress 不断返回错误:

playwithbits 的公钥和私钥不正确

我已经向 Wordpress 提供了以下信息

Hostname: localhost
Username: playwithbits
Password: Blank
Public key: /keys/id_rsa.pub //I have also tried the paths from server root
Private key: /keys/id_rsa

以下是我对相关文件夹和文件设置的权限:

drwx------ 2 playwithbits playwithbits 4096 Jun  8 11:25 .ssh
drwx------ 2 playwithbits playwithbits 4096 Jun  8 13:27 keys
-rw------- 1 playwithbits playwithbits  414 Jun  8 11:21 authorized_keys
-rw------- 1 playwithbits playwithbits 1.7K Jun  6 02:17 id_rsa
-rw-r--r-- 1 playwithbits playwithbits  414 Jun  6 02:17 id_rsa.pub

我还尝试在调试模式下进行连接,在该模式下我得到以下输出:

Connection from 127.0.0.1 port 56674
debug1: Client protocol version 2.0; client software version libssh2_0.18 PHP
debug1: no match: libssh2_0.18 PHP
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-cbc hmac-sha1 none
debug1: kex: server->client aes256-cbc hmac-sha1 none
debug1: expecting SSH2_MSG_KEXDH_INIT
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2)
debug1: do_cleanup
debug1: do_cleanup

有谁知道为什么我不能使用公钥和私钥访问?如果我使用该帐户的密码,wordpress 将能够登录并执行更新。

编辑:在我的sshd_config文件中,我有以下规则:

Match group web-root-locked
         ChrootDirectory /home/nginx/domains/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
         AuthorizedKeysFile /home/nginx/domains/%u/.ssh/authorized_keys

playwithbits是的成员web-root-locked

linux ssh sftp wordpress ssh-keys
  • 4 4 个回答
  • 4324 Views

4 个回答

  • Voted
  1. Best Answer
    George Reith
    2012-06-14T12:12:19+08:002012-06-14T12:12:19+08:00

    通过反复试验找到了答案。密钥需要由网络服务器而不是我尝试登录的用户拥有。

    chown nginx:nginx id_rsa
    chown nginx:nginx id_rsa.pub
    

    现在它像梦一样工作。

    • 4
  2. Jeff Ferland
    2012-06-09T06:06:45+08:002012-06-09T06:06:45+08:00

    我的第一直觉:id_rsa应该在 ~/.ssh/

    Apache 可能正在通过 fork、子进程、这些进程的子进程等生成各种进程。为此,我会通过使用审计日志工具找出 Wordpress 认为它​​试图打开的路径。

    `auditctl -a entry,always -F arch=`arch` -F euid!=0 -S open`
    `auditctl -a entry,always -F arch=`arch` -F euid!=0 -S stat`
    

    那些应该抓住尝试。您可以通过grep id_rsa在审核日志上执行操作以查看尝试打开来找到它。如果那不提供信息,那么通过chdir监控等进行更深入的挖掘将是可行的方法,但我非常有信心open系统调用会捕捉到这一点。

    一旦知道它要做什么,就可以确定该路径是相对于用户主目录、另一个用户的主目录、http 根目录、FS 根目录等。

    更新

    关于使用 ssh 更新 Wordpress的本教程展示了使用完整路径来指定密钥。

    WordPress ssh 连接信息

    • 3
  3. reqmontell
    2012-06-09T15:26:58+08:002012-06-09T15:26:58+08:00

    试试这个插件。它允许您通过浏览器从您的计算机上传 SSH 私钥。不需要公钥。

    • 0
  4. Eaten by a Grue
    2015-10-30T09:26:40+08:002015-10-30T09:26:40+08:00

    对于那些使用 apache 的人,这里是我如何解决 Ubuntu 14.04 上的权限问题

    先添加用户所在的组so apache:

    usermod -a -G myuser www-data
    

    然后所需要做的就是授予对私钥的读取权限:

    chmod g+r /home/myuser/.ssh/id_rsa
    
    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve