Ale*_*lls 5 ssh alias kerberos
我使用 Kerberos 票证身份验证通过 ssh 成功连接到我大学的网络。正常、详细的操作(kinit 票证,然后 ssh user@hostname)工作正常。
问题
~/.ssh/config
但是,在文件中设置 ssh 别名时,ssh 完全忽略 Kerberos 并提示我输入密码。(请参阅下面的调试输出。)
为什么是这样?我如何配置它以使用 Kerberos?
注意:在尝试使用 ssh 别名之前和之后,使用 Kerberos 的正常 ssh 操作继续工作。此外,当提供登录密码时,ssh 别名可以按预期工作。
(系统: Mac OS 10.11.4, Darwin Kernel Version 15.4.0, OpenSSH_6.9p1, LibreSSL 2.1.8, Kerberos 5 release 1.7)
调试输出
从 CL 运行 SSH 时,我添加-vvv
了详细的调试信息,然后对输出进行了比较。我已经包括了显着不同的部分。
$ ssh -vvv [ssh-alias]
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,keyboard-interactive,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
atmills@login.engin.umich.edu's password:
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
Authenticated to login.engin.umich.edu ([141.213.74.56]:22).
Run Code Online (Sandbox Code Playgroud)
$ ssh -vvv [user@host]
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-keyex
debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-keyex
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug2: we did not send a packet, disable method
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 141.213.74.58.
debug2: we sent a gssapi-with-mic packet, wait for reply
debug1: Delegating credentials
debug1: Delegating credentials
debug1: Authentication succeeded (gssapi-with-mic).
Authenticated to login.engin.umich.edu ([141.213.74.58]:22).
Run Code Online (Sandbox Code Playgroud)
正如我所看到的,Kerberos 配置处理完全限定的主机名 ( gato.example.org
) 而不是不合格的主机 ( gato
);使用不合格的主机名在测试ssh
调试行时会产生以下结果:
debug1: Next authentication method: gssapi-with-mic
debug1: Miscellaneous failure (see text)
Error from KDC: LOOKING_UP_SERVER while looking up 'host/gato@EXAMPLE.ORG' (cached result, timeout in 1089 sec)
Run Code Online (Sandbox Code Playgroud)
这是因为 kerberos 主机的/etc/krb5.keytab
文件中通常仅具有完全限定的主机主体条目:
[root@gato ~]# strings /etc/krb5.keytab | head -3
EXAMPLE.ORG
host
gato.example.org
Run Code Online (Sandbox Code Playgroud)
您的日志似乎都使用完全限定的login.engin.umich.edu
主机名,因此您的问题可能是其他问题,但一般来说,在处理 kerberos 时,最好手动强制使用完全限定的主机名~/.ssh/config
:
Host gato.example.org gato bubba
Hostname gato.example.org
Run Code Online (Sandbox Code Playgroud)
或者通过CanonicalizeHostname
关键字(请参阅ssh_config(5)
详细信息和注意事项)。
另一点需要注意的是,这login.engin.umich.edu
是一个主机池;要测试的一件事是该池中的特定节点对于 kerberos 配置错误,从而将您转回密码身份验证,尽管这需要编辑/etc/hosts
以包含类似以下内容:
141.213.74.56 login.engin.umich.edu
Run Code Online (Sandbox Code Playgroud)
并记住完成后删除测试条目。(使用IP地址对kerberos没有好处,您需要使用主机名,因此需要进行/etc/hosts
测试。)
归档时间: |
|
查看次数: |
2057 次 |
最近记录: |