Servidor SSH verificando chaves públicas de outra fonte

Servidor SSH verificando chaves públicas de outra fonte

Numa conexão ssh com autenticação de chave o usuário envia o ID da chave pública que deseja utilizar. Em seguida, o servidor verifica o arquivo autorizado_keys em busca da chave pública.

Gostaria que o servidor não procurasse esse ID no arquivo autorizado_keys, mas usasse o nome de usuário para recuperar a chave de outra fonte (por exemplo, um banco de dados, outro arquivo, um servidor remoto etc.)

É possível fazer isso?

Responder1

Para mudar ocaminho de arquivo, você pode especificar oArquivo de Chaves Autorizadasopção em sshd_config (assumindo que o servidor execute OpenSSH). Você pode fornecer vários caminhos, relativos ao diretório inicial do usuário ou caminhos absolutos com %uexpansão para o nome de usuário.

Por exemplo, para manter a localização padrão deauthorized_keys eadicionarum arquivo em /etc:

AuthorizedKeysFile  .ssh/authorized_keys  /etc/ssh/users/%u.txt

Para usar umcomando externo, se o servidor estiver usando OpenSSH 6.2 ou posterior, você poderá especificarComando de Chaves Autorizadasno arquivo sshd_config do servidor, apontando para um programa ou script personalizado.

O programa será executado em cada login, receberá um nome de usuário como parâmetro de linha de comando e precisará gerar uma lista de chaves para esse usuário (usando o mesmo formato de chaves_autorizadas) via stdout.

Por exemplo, se você estiver usando LDAP, oSSSDO cliente LDAP já inclui uma ferramenta sss_ssh_authorizedkeyspara recuperar chaves do atributo sshPublicKey do usuário.

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody

informação relacionada