Acabei de notar que algo estranho aconteceu com dois dos meus servidores Linux. Temos duas dúzias de servidores Ubuntu 18.04 LTS e todos eles nos pedem um prompt da mesma maneira:
# ssh admin@pl3poland
admin@pl3poland's password:
No entanto, recentemente começamos a impor requisitos de senha mais fortes em dois servidores. Alteramos as configurações em /etc/pam.d/common-password para libpwquality.
Antes da:
password requisite pam_pwquality.so retry=3
Depois:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 minclass=4 maxrepeat=2 dictcheck=1 usercheck=1
Parece que depois que esses valores foram alterados, agora o prompt de senha aparece de forma diferente. Isto é o que surge agora:
# spawn ssh admin@spain
Password:
Essa é uma diferença relativamente pequena, mas afetou algumas de nossas rotinas automatizadas em que usamos scripts de espera para conectar-se aos sistemas. Mudei o script para procurar "sword:" em vez da "password:" completa, mas estou curioso para saber por que isso mudaria e se há alguma maneira de alterá-lo de volta?
Examinando a documentação, encontrei um comando chamado "prompt de senha", mas não parece que seja algo que eu possa usar para definir permanentemente o prefixo da senha.
Alguém capaz de me direcionar para um arquivo .conf ou alguma documentação que explique como mudar isso? Eu venho de um background AIX, e havia um arquivo chamado /etc/security/login.cfg que poderíamos alterar para ajustar o "herald" para cada login. Mas não vejo algo semelhante no Ubuntu.
THX
Steve N.
user@server's password
é usado para autenticação de senhaPassword:
é usado para autenticação interativa do tecladoAmbos são definidos com uma opção SSH:
PreferredAuthentications=password
PreferredAuthentications=keyboard-interactiv
conforme definido em rfc 4252 e rfc 4256 , portanto, é improvável que esteja relacionado a uma alteração
/etc/pam.d/common-password
e mais a ver com uma alteração.ssh/config
e a configuraçãoPreferredAuthentications
ou definindo-a com uma opção comssh -o
.Parece que o problema era exatamente o que Rinzwind havia indicado. Usando o sinalizador de depurador ssh -vv, pude ver que o Ubuntu Server #1 (polaris) estava parando no método de autenticação "senha", enquanto o Ubuntu Server #2 (espanha) estava
Para demonstrar, aqui está o final da sessão de login do depurador:
Contra o do meu servidor na Espanha:
Agora, para minha própria curiosidade, eu realmente deveria gastar o tempo para descobrir por que um está usando senha enquanto o outro está no teclado interativo. Suspeito que seja um problema com as entradas id_rsa.pub ou authorized_keys. Mas não tive tempo de pesquisar mais sobre isso.
A solução que encontramos para corrigir nossos scripts esperados é simplesmente procurar por "assword:" em vez de "password:" que foi usada anteriormente. Dessa forma, se encontrarmos o problema novamente, as rotinas automatizadas continuarão independentemente de obtermos "Senha:" ou "senha:" como parte da string de login.