Identifica a chave pública SSH na sessão shell da extremidade remota (nenhum agente ou nenhuma identidade no agente)

3

Eu sei dessa maneira para descobrir qual chave foi usada para autenticar ao usar as chaves armazenadas em um agente chave:

ssh-add -L 2>/dev/null | awk '{print $1}' | while read identity; do grep -v '^#' ~/.ssh/authorized_keys | grep "${identity}" ; done 

Liste as identidades dos agentes linha por linha, extraia a chave e procure-a no arquivo authorized_keys

Quando o cliente não usa um agente chave, nenhuma chave será listada por ssh-add -L .

Existe alguma outra maneira de identificar a chave pública? Observe que passar ou configurar variáveis de "ambiente de usuário" personalizadas usando a opção de chave SetEnv ou environment="VAR=VALUE" como não é possível (permitido).

    
por try-catch-finally 19.04.2015 / 16:56

1 resposta

3

O único lugar onde o sshd registra como o usuário autenticado está nos logs do sistema. Esta informação não é disponibilizada para a sessão autenticada. A única informação de identificação sobre a origem da conexão que é disponibilizada no ambiente é o endereço IP e porta no cliente, nas variáveis SSH_CLIENT e SSH_CONNECTION .

Você pode adicionar uma diretiva em ~/.ssh/authorized_keys para definir uma variável de ambiente se o usuário efetuar login com uma chave específica:

environment="SSH_KEY=foo" ssh-rsa AAAA…

Se o usuário não efetuar login com uma chave, você não terá como informar como eles efetuaram login (senha, .shosts , Kerberos,…), exceto procurando nos logs do sistema (que somente o administrador do sistema pode fazer).

Se o administrador do sistema não permitir que você modifique o arquivo authorized_keys , será necessário trabalhar com eles para saber como você pode fazer o que quiser. Certifique-se de explicar a eles quais informações você precisa saber e por quê.

Observe que o que você fez com o agente não é uma forma confiável de identificar a origem da conexão e não informa nada sobre como o usuário efetuou login. Você não receberá nada se o usuário não encaminhar o agente, ou se não tivessem chaves no agente. Você pode obter várias chaves e não há nenhuma razão específica pela qual o usuário teria usado uma dessas chaves para efetuar login (elas poderiam ter usado uma senha ou outra chave ou qualquer outro método). Eu não recomendo fazer nada com essa informação, não é confiável.

    
por 20.04.2015 / 01:17

Tags