Login SSH com métodos de autenticação definidos

1

Eu tenho um servidor pequeno e gostaria de poder fazer o login usando o SSH com 2 métodos:

  • Chave pública
  • Senha e depois um PAM feito em Python

Instalei com sucesso libpam-python e adicionei esta linha a /etc/pam.d/sshd :

auth   requisite   /lib/x86_64-linux-gnu/security/pam_python.so /lib/x86_64-linux-gnu/security/my_pam.py

Por exemplo, vamos supor que meu python pam funcione e apenas peça outra senha.

Aqui estão os parâmetros relevantes no meu /etc/ssh/sshd_config :

# PAM
UsePAM yes
ChallengeResponseAuthentication yes

# Regular password
PasswordAuthentication yes
PermitEmptyPasswords no

# Authentication Methods
# Either an authorised public key, or the password + another one (python pam).
AuthenticationMethods publickey password,keyboard-interactive:pam

Infelizmente, isso não funciona:

# I am not using an authorized public key
me@client:~$ ssh user@myserver
user@myserver's password: 
Permission denied, please try again.
user@myserver's password: 
Permission denied, please try again.
user@myserver's password: 
Permission denied (publickey,password).

Minha senha está correta! Se eu alterar os parâmetros de volta ao valor padrão, minha senha será reconhecida e eu poderei fazer o login!

O problema parece ser o parâmetro AuthenticationMethods . Se eu removê-lo, funciona:

me@client:~$ ssh user@myserver
Python PAM password:
Password OK!
END OF PYTHON PAM. 
Password: 
user@myserver:~$

Observe que o clássico user@myserver's password: foi substituído por uma popa Password: .

Infelizmente, mesmo que funcione, não posso escolher a ordem dos 2 métodos (eu queria a ordem inversa), e o método clássico de senha parece ter sido substituído por uma versão do PAM, que eu não sei , assim me incomoda um pouco.

Como posso resolver este problema?

    
por Pita3145 10.11.2016 / 13:11

0 respostas