La configuration de mon serveur est la suivante : CentOS 5.8 (final) exécutant Nginx.
J'utilise la fonction SSH2 de l'installateur de plugins de Wordpress.
J'ai installé lib2ssh
et cela fonctionne (Wordpress reconnaît son existence).
L'utilisateur (appelé playwithbits
) que j'ai fourni à wordpress est chrooté et a le répertoire personnel de /home/nginx/domains/playwithbits/
Les clés publiques et privées sont situées dans le répertoire /home/nginx/domains/playwithbits/keys/
et sont nommés id_rsa.pub
y id_rsa
respectivement.
J'ai copié le contenu de id_rsa.pub
vers le fichier authorized_keys
situé à /home/nginx/domains/playwithbits/.ssh/
Je n'ai pas défini de mot de passe pour les fichiers clés. Cependant, Wordpress continue de renvoyer l'erreur :
Clés publiques et privées incorrectes pour playwithbits
J'ai fourni les informations suivantes à 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
Voici les permissions que j'ai définies sur les dossiers et fichiers concernés :
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
J'ai également essayé de me connecter en mode débogage, mais j'ai obtenu le résultat suivant :
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
Quelqu'un sait-il pourquoi je ne peux pas utiliser la clé publique et la clé privée pour accéder ? Si j'utilise le mot de passe du compte à la place, wordpress est capable de se connecter et d'effectuer des mises à jour.
Edit : Dans mon sshd_config
J'ai les règles suivantes :
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
est un membre de web-root-locked