Estou executando o Mac OS X Server.app no Yosemite e tenho o SSH ativado para usuários com as configurações padrão em /etc/sshd_config (chave pública e senha ativadas por padrão). No entanto, preciso restringir o usuário local git a ter acesso publickey APENAS via SSH.
Divulgação completa, o Server.app ativa algumas opções adicionais de Kerberos e GSSAPI (embora eu não tenha 100% de certeza de como isso afeta minhas perguntas abaixo):
# Kerberos options
KerberosAuthentication yes
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
GSSAPIStrictAcceptorCheck yes
GSSAPIKeyExchange no
/etc/sshd_config diz o seguinte:
# To disable tunneled clear text passwords both PasswordAuthentication and
# ChallengeResponseAuthentication must be set to "no".
No entanto, ChallengeResponseAuthentication não é permitido em declarações de correspondência, por isso tentei apenas desativar a autenticação de senha apenas:
Match User git
PasswordAuthentication no
Isso não funciona - ainda consegui fazer o login com nome de usuário / senha para [email protected]: (
No entanto, adicionar KbdInteractiveAuthentication no parece funcionar corretamente:
Match User git
PasswordAuthentication no
KbdInteractiveAuthentication no
Agora obtenho Permission denied (publickey,gssapi-keyex,gssapi-with-mic) ao tentar efetuar login sem uma chave pública. Isso parece indicar que ainda existem métodos além de publickey que permitirão o login do usuário git (por exemplo, gssapi-keyex e gssapi-with-mic )
Parece que uma abordagem melhor é simplesmente restringir o método de autenticação para publickey :
Match User git
AuthenticationMethods publickey
Isso dá a resposta 'Permissão negada (publickey).
Perguntas:
- Qual é a diferença entre
ChallengeResponseAuthentication e
%código%? Porque é
KbdInteractiveAuthentication permitido nas declarações de correspondência, mas não
KbdInteractiveAuthentication ?
- Existe algum problema de segurança / desvantagem com a abordagem
ChallengeResponseAuthentication ?
- (Bônus se você puder me ajudar a entender
AuthenticationMethods publickey / gssapi-keyex e como eles se relacionam com as opções GSSAPI / Kerberos que foram ativadas)