Ok, eu continuei e acho que encontrei uma solução razoável. A principal coisa que eu estava faltando anteriormente era o AuthenticationMethods publickey,password
do sshd. Isso impõe o requisito para uma publickey e uma senha - "password" agora sendo manipulada por PAM->auth-yubi
. Mudanças adicionais também foram necessárias, veja abaixo:
(ubuntu 14.04 - trusty):
/etc/pam.d/yubi-auth
auth required pam_yubico.so mode=client try_first_pass id=<id> key=<key>
Observação: você pode obter sua ID de acesso e chave secreta aqui
/etc/pam.d/sshd
# Standard Un*x authentication.
#@include common-auth
# Yubikey auth
@include yubi-auth
/ etc / ssh / sshd_config
UsePAM yes
ChallengeResponseAuthentication no
AuthenticationMethods publickey,password
PasswordAuthentication yes
service ssh restart
Verificação
SSH de um host remoto sem uma chave pública
root@0a6442bcb21c:/# ssh [email protected]
The authenticity of host '192.168.1.20 (192.168.1.20)' can't be established.
ECDSA key fingerprint is ea:2a:e3:98:35:72:66:b1:e0:65:6b:3f:60:8a:af:ab.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.20' (ECDSA) to the list of known hosts.
Permission denied (publickey).
SSH de um host remoto com uma chave pública
$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-33-generic x86_64)
Melhoria
Seria bom ver "Yubikey Auth:" em vez de "password:" do servidor ssh remoto ao autenticar.
O que acontece quando o servidor ssh não consegue entrar em contato com o sistema de verificação de autenticação do yubico? Uma solução ideal seria inteiramente auto-suficiente.
Comentários e sugestões apreciados.