A configuração do meu servidor é a seguinte: CentOS 5.8 (final) executando o Nginx.
Estou usando o recurso SSH2 do instalador de plugins do Wordpress.
Eu instalei o lib2ssh
e ele está funcionando (o Wordpress está reconhecendo que ele existe).
O usuário (chamado playwithbits
) que eu forneci ao wordpress é chrooted e tem o diretório home de /home/nginx/domains/playwithbits/
As chaves pública e privada estão localizadas no diretório /home/nginx/domains/playwithbits/keys/
e são nomeadas id_rsa.pub
e id_rsa
, respectivamente.
Eu copiei o conteúdo de id_rsa.pub
para o arquivo authorized_keys
localizado em /home/nginx/domains/playwithbits/.ssh/
Eu não defini uma senha para os arquivos de chave. No entanto Wordpress continua retornando o erro:
Public and Private keys incorrect for playwithbits
Eu forneci as seguintes informações para o 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
Aqui estão as permissões que defini nas pastas e arquivos relevantes:
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
Eu também tentei conectar no modo de depuração no qual recebo a seguinte saída:
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
Alguém sabe por que não consigo usar a chave pública e privada para acessar? Se eu usar a senha da conta, o wordpress poderá fazer login e executar atualizações.
Editar: No meu arquivo sshd_config
, tenho as seguintes regras:
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
é um membro de web-root-locked