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)