Para resumir, recentemente montei um servidor RHEL 7 e o inscrevi no FreeIPA. Todos os outros servidores registrados podem usar SSH entre si sem nenhum problema usando apenas o nome do host, autenticando com gssapi-with-mic, mas este parece ter algo configurado errado e volta para a autenticação de senha. Especificamente, parece estar tentando usar o nome de host curto versus o FQDN do servidor remoto, a menos que eu ssh explicitamente para o FQDN.
Se eu ssh usando o FQDN, ou seja
ssh remote-hostname.domain.com
tudo funciona bem. Se eu não fizer isso, ou seja
ssh remote-hostname
Sou solicitado a fornecer uma senha. Habilitar a depuração ssh dá o seguinte:
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
Server host/[email protected] not found in Kerberos database
nslookup fornece corretamente o FQDN do servidor:
[kevin@local-hostname ~]$ nslookup remote-hostname
Server: x.x.x.x
Address: x.x.x.x#53
Name: remote-hostname.domain.com
Address: x.x.x.x
O domínio do servidor local parece estar configurado corretamente:
[kevin@local-hostname ~]$ hostname
local-hostname
[kevin@local-hostname ~]$ hostname -f
local-hostname.domain.com
Estou um pouco perplexo quanto a onde ir a partir daqui. Alguém pode me dizer por que o sshing para o nome do host remoto pode não estar funcionando? Infelizmente, sou novo no Kerberos e realmente não sei onde procurar, além de verificar se o arquivo /etc/krb5.conf no novo servidor corresponde ao de outros servidores em funcionamento.
O problema era na verdade uma diferença em /etc/krb5.conf que consegui ignorar - meu novo servidor tinha
set, o que - exatamente como você pode esperar - fez com que o nome do host não fosse canonizado para o FQDN. De acordo com a página do manual, esta opção tem como padrão "true", então não sei exatamente por que ela foi alterada. O arquivo tem o comentário
fazendo-me acreditar que foi a inscrição no IPA que fez isso. Definir a opção como "true" (ou remover a linha) corrige tudo. Vou deixar a pergunta em aberto um pouco caso alguém tenha uma ideia melhor.