PAM não autenticando o sudo, após entrar em contato com o ssh-agent

3

Configurando a autenticação PAM sudo , usando ssh-agent , no servidor LTS 14.04.1 do Ubuntu.

Ainda não consigo autenticar com sucesso o sudo, por meio do agente ssh, usando o PAM.

Aqui estão as minhas entradas /var/log/auth.log relevantes ...

Jun 17 11:31:16 host sudo[21318]: pam_ssh_agent_auth: Beginning pam_ssh_agent_auth for user userName
Jun 17 11:31:16 host sudo[21318]: pam_ssh_agent_auth: Attempting authentication: 'userName' as 'userName' using /etc/security/authorized_keys
Jun 17 11:31:16 host sudo[21318]: pam_ssh_agent_auth: Contacted ssh-agent of user userName (1000)
Jun 17 11:31:16 host sudo[21318]: pam_ssh_agent_auth: Failed Authentication: 'userName' as 'userName' using /etc/security/authorized_keys

Como você pode ver, ele contata com sucesso o ssh-agent , mas a autenticação falha. O PAM retorna ao (s) próximo (s) método (s) de autenticação, e solicita a senha do sudo / userName, então eu posso prosseguir. Estou tentando configurá-lo, para que você não precise de uma sudo senha, contanto que você se conecte via ssh com uma chave autorizada.

Aqui estão os arquivos relevantes e seu conteúdo:

/etc/pam.d/sudo

#%PAM-1.0

auth       sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys debug
auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0

@include common-auth
@include common-account
@include common-session-noninteractive

informações do arquivo / etc / security / authorized_keys : este arquivo contém 4 ssh-rsa chaves públicas.

-rw-r--r-- 1 root root 1597 Jun 16 16:07 /etc/security/authorized_keys

/ etc / sudoers

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_keep += SSH_AUTH_SOCK

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

E, pelo bem da sanidade, você pode ver que o SSH_AUTH_SOCK está de fato sendo "passado pela corrente sudo " corretamente ...

printenv | grep SSH

SSH_AUTH_SOCK=/tmp/ssh-m9Ume3GOIP/agent.15964

sudo printenv | grep SSH

SSH_AUTH_SOCK=/tmp/ssh-m9Ume3GOIP/agent.15964

Eu ssh no servidor via

ssh -A host@ip_address

Vou incluir qualquer outra informação que possa ser útil, basta perguntar:)

Estou nisso há mais de um dia e descobri dezenas de "howtos" para configurar o PAM sudo authentication usando ssh keys, e todos são semelhantes ... mas posso Não encontre nada que possa esclarecer por que a autenticação do PAM falha, após entrar em contato / comunicação com o ssh-agent .

Obrigado antecipadamente!

UPDATE

ssh-add no lado do cliente, foi o truque. Eu não sou um "usuário de energia ssh", mas isso me dá o que eu preciso para descobrir a causa raiz. Obrigado!

    
por Michael Claramunt 17.06.2016 / 20:06

1 resposta

3

A configuração está correta, mas você precisa ter algumas identidades em ssh-agent para poder autorizar a operação sudo . Você pode verificar se seu agente possui algumas identidades usando

ssh-add -L

Ele deve imprimir as chaves públicas no seu agente e pelo menos uma delas deve corresponder à chave pública no servidor em /etc/security/authorized_keys .

Se o agente não tiver identidades, você precisará adicioná-las ao seu computador, novamente usando

ssh-add [path/to/key]

e insira sua senha, se solicitado.

    
por 17.06.2016 / 20:55