Compreender a PasswordAuthentication na configuração do sshd

5

Eu tenho um servidor OpenSSH que suporta apenas autenticação por senha:

[martin@ ~]$ ssh -v 10.10.1.183 -l root
OpenSSH_5.2p1 FreeBSD-20090522, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 10.10.1.183 [10.10.1.183] port 22.
debug1: Connection established.
debug1: identity file /home/martin/.ssh/identity type 0
debug1: identity file /home/martin/.ssh/id_rsa type -1
debug1: identity file /home/martin/.ssh/id_dsa type 2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Debian-5
debug1: match: OpenSSH_6.7p1 Debian-5 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2p1 FreeBSD-20090522
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<2048<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '10.10.1.183' is known and matches the RSA host key.
debug1: Found key in /home/martin/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: password
debug1: Next authentication method: password
[email protected]'s password: 

Em outras palavras, somente o arquivo PasswordAuthentication no servidor sshd_config está definido como yes .

De acordo com a RFC 4252 seção 8 It is up to the server how to interpret the password and validate it against the password database. Estou correto que no Linux isso significa que sshd verifica diretamente os arquivos /etc/passwd e /etc/shadow se a configuração UsePAM in sshd estiver desativada?

    
por Martin 27.10.2015 / 10:13

2 respostas

1

Am I correct that in Linux this means that sshd directly checks the /etc/passwd and /etc/shadow files if UsePAM in sshd configuration is disabled?

Sim. Mas atualmente a maioria das distribuições manipula o login usando o pam, porque as sessões nos sistemas atuais estão ficando cada vez mais complicadas. O OpenSSH pode se comunicar com o shadow usando o arquivo de cabeçalho <shadow.h> e as funções definidas lá.

Para obter mais informações, isso está nos arquivos de código-fonte auth.c e auth-shadow.c

    
por 27.10.2015 / 12:55
2

Uma rápida olhada na fonte indica que auth-passwd.c inclui < pwd.h > & O auth-shadow.c inclui o < shadow.h & gt ;. Sem fazer um mergulho profundo, parece que o sshd usa as chamadas do sistema para verificar a senha. Também havia código que permitia o sshd requerido e fazia uma mudança de senha para senhas expiradas.

    
por 27.10.2015 / 12:58