Um colega está tentando entrar em um servidor RHEL7 a partir do Windows usando um cliente SFTP e um login sem senha SSH. A conta de usuário é chrooted no início servidor.
A versão do openssh 6.6.1
está instalada no servidor RHEL7.
Após uma tentativa de conexão com SFTP com falha, verifiquei /var/log/secure
no servidor e descobri o seguinte:
Sep 12 17:00:22 serverbox sshd[32652]: Accepted publickey for specialuser from 1.1.1.77 port 58776 ssh2: RSA FINGERPRINT
Sep 12 17:00:22 serverbox sshd[32652]: pam_unix(sshd:session): session opened for user specialuser by (uid=0)
Sep 12 17:00:22 serverbox sshd[32652]: sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]
Sep 12 17:01:18 serverbox sshd[32652]: Received disconnect from 1.1.1.77: 11: disconnected by user [postauth]
Sep 12 17:01:18 serverbox sshd[32652]: pam_unix(sshd:session): session closed for user specialuser
O mesmo erro aparece ao tentar conexão do Putty SFTP ou Filezilla (ambos configurados para usar a chave privada local).
Aqui está a linha getcon para facilitar a leitura:
sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]
Assim, a chave pública é aceita, então o Putty (e o Filezilla SFTP) cai depois que não consegue encontrar algo que esteja procurando.
Permissões:
drwxr-xr-x. root root /home/specialuser
drwx------. specialuser sftponly /home/specialuser/.ssh
drw-------. specialuser sftponly /home/specialuser/.ssh/authorized_keys
Chave pública válida no servidor:
[user@server]# ssh-keygen -l -f authorized_keys
2048 sha1:fi:ng:er:pr:in:tt rsa-key-20160913 (RSA)
Para o restante da configuração de chroots, consulte resposta eu postei em outra pergunta.
SFTP com conta chrooted funciona bem em clientes Linux:
Eu criei a mesma conta de usuário ( specialuser
) no meu sistema Linux local (Ubuntu), copiei id_rsa.pub
da conta local para /home/specialuser/.ssh/authorized_keys
do servidor e pude fazer o sftp sem problemas.
SELinux descartou
Para ajudar na solução de problemas, eu desativei temporariamente o SELinux, mas continuei vendo o mesmo erro 'getcon failed ...' com tentativas do Windows / Putty.
O mesmo problema com a PasswordAuthentication habilitada
Eu também habilitei temporariamente PasswordAuthentication para specialuser
, e isso ainda resulta em Putty saindo e o erro 'getcon failed' acima aparece no arquivo /var/log/secure
do servidor.
Dados de log dessa tentativa (verbose):
Sep 14 10:34:32 serverbox sshd[41228]: Accepted password for specialuser from 1.1.1.77 port 61135 ssh2
Sep 14 10:34:32 serverbox sshd[41228]: pam_unix(sshd:session): session opened for user specialuser by (uid=0)
Sep 14 10:34:32 serverbox sshd[41228]: User child is on pid 41283
Sep 14 10:34:32 serverbox sshd[41228]: Changed root directory to "/home/specialuser" [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: sshd_selinux_copy_context: getcon failed with No such file or directory [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Starting session: forced-command (config) 'internal-sftp' for specialuser from 1.1.1.77 port 61135 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Connection closed by 1.1.1.77 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Transferred: sent 1976, received 1728 bytes [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: Closing connection to 1.1.1.77 port 61135 [postauth]
Sep 14 10:34:32 serverbox sshd[41228]: pam_unix(sshd:session): session closed for user specialuser
EDITAR
Eu criei um usuário separado, não-chrooted, no servidor. Eu posso usar Putty
e Putty SFTP
to SSH/SFTP
para o servidor com a chave pública / privada.
O problema é chegar à pasta pessoal com chrooted .
APÊNDICE 1: registre dados com LogLevel DEBUG3
link (a saída excede os caracteres máximos permitidos para esta pergunta)
sshd_config
Subsystem sftp internal-sftp #added
Match group sftponly
PasswordAuthentication yes
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp