标签: kerberos

使用 gssapi-keyex 或 gssapi-with-mic 进行 SSH 身份验证(不允许使用公钥)

我的公司已禁用 SSH 公钥身份验证,因此每次我都必须手动输入密码(我不打算更改/etc/ssh/sshd_config)。

但是gssapi-keyexgssapi-with-mic身份验证已启用(请参阅下面的ssh调试输出)。

在这种情况下如何使用自动登录?
我可以利用gssapi-keyex和/或gssapi-with-mic身份验证吗?

> ssh -v -o PreferredAuthentications=publickey hostxx.domainxx
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to hostxx.domainxx [11.22.33.44] port 22.
debug1: Connection established.
debug1: identity file /home/me/.ssh/identity type -1
debug1: identity file /home/me/.ssh/id_rsa type -1
debug1: identity file /home/me/.ssh/id_dsa type 2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 …
Run Code Online (Sandbox Code Playgroud)

ssh authentication kerberos

18
推荐指数
2
解决办法
7万
查看次数

从命令行获取 Kerberos 服务票证

我正在调试 Kerberos 设置。我有一个有效的krb5.conf,我可以打电话kinit USERNAME来获取一张票据授予票据 (TGT):

Credentials cache: /root/krb5cc_root
Default principal: USERNAME@EXAMPLE.COM
Number of entries: 1

[1] Service principal: krbtgt/EXAMPLE.COM@EXAMPLE.COM
        Valid starting: Wednesday, June 4, 2014 at 10:02:29 PM
        Expires: Thursday, June 5, 2014 at 8:02:29 AM
Run Code Online (Sandbox Code Playgroud)

我想使用该 TGT在命令行上请求 Kerberos服务票证,以便我可以使用 klist 查看它。它将有助于调试我正在尝试解决的 Kerberos 问题。

是否有命令或程序可以检索给定服务的 Kerberos 服务票证?

command-line kerberos

15
推荐指数
1
解决办法
2万
查看次数

我怎样才能消除密码的 Kerberos?

当我发出命令来更改我的密码时:

sudo passwd huahsin

系统提示我:

Current Kerberos password:

我不知道我对系统配置做了什么,我如何在更改密码时消除这个 Kerberos 东西?

linux kerberos passwd

13
推荐指数
2
解决办法
3万
查看次数

登录时自动 kerberos 票证初始化

我正在使用在登录 KDE 时ksshaskpass将受密码保护的密钥添加ssh-agent到其中,kerberos 是否有类似的东西?

login kde kerberos

11
推荐指数
1
解决办法
2万
查看次数

PAM vs LDAP vs SSSD vs Kerberos

我基本上知道这些服务彼此分开做什么。我想知道的是:在使用所有这些服务的基于 linux 的网络中成功登录时究竟会发生什么?咨询这些服务的顺序是什么?什么服务与什么服务对话?

login ldap pam kerberos sssd

11
推荐指数
1
解决办法
1万
查看次数

列出具有有效 TGT 的 Kerberos 主体

是否可以查询我的 (MIT) Kerberos KDC 以返回已颁发当前有效 TGT 的主体列表?

我的用例是,我想通过仅查询 KDC 机器来找出哪些用户当前登录到网络环境中的任何机器上。

administration kerberos

8
推荐指数
1
解决办法
342
查看次数

Kerberos 身份验证失败并强制更改密码

我已将 PAM 身份验证配置为使用 Kerberos,并且可以使用我的委托人的 Kerberos 凭据正确进行身份验证。

当我尝试使用过期密码创建主体时遇到了麻烦:

kadmin: addprinc +needchange test_principal
Run Code Online (Sandbox Code Playgroud)

当我尝试登录时(从 VT 或图形迎宾器),在正确输入密码后,我收到了密码已过期的预期消息,系统提示我创建一个新密码。完成此操作后,身份验证失败并出现以下错误kdc.log

krb5kdc[...](info): TGS_REQ (4 etypes {18 17 16 23}) 192.168.0.200: NO PREAUTH: authtime 0, test_principal@MY.REALM for host/server.my.realm@MY.REALM, Generic error (see e-text)
Run Code Online (Sandbox Code Playgroud)

以及以下(并不奇怪)错误/var/log/auth.log

pam_krb5(gdm3:auth): (user test_principal) credential verfication failed: KDC returned error string: NO PREAUTH
Run Code Online (Sandbox Code Playgroud)

一些笔记

  • 列出主体的属性(通过getprincin kadmin.local)显示 0 次失败的登录尝试
  • 如果我创建没有+needchange标志的帐户,我就可以正确进行身份验证。
  • 如果在用户成功通过身份验证后添加+needchange标志(通过modprincin kadmin.local),我会得到预期的行为;即提示用户更改密码,然后验证成功。
  • 此主体没有等效条目,/etc/passwd但由 LDAP 条目备份。
  • 正如其他地方所建议的,我尝试像这样创建我的主体:

    kadmin: addprinc -requires_preauth +needchange test_principal …
    Run Code Online (Sandbox Code Playgroud)

kerberos

7
推荐指数
1
解决办法
2291
查看次数

在 sudo 调用中保留 kerberos 票证

在普通的 linux 机器上,当我sudo -s作为普通用户使用时,我变成了 root 但HOME仍然指向~user,所以每个管理员都有自己的环境等(这是没有env_resetalways_set_home设置的)。

在主目录位于 AFS 文件系统上的系统上,如果环境变量KRB5CCNAME被保留,这也有效,因为 root 可以在/tmp.

但是如果我sudo在这样的系统上使用来更改本地非 root 用户(例如特定服务的专用用户),新用户将无法访问 kerberos 缓存(因为它由旧用户拥有并且模式为 600)。但是如果我unset KRB5CCNAME && kinit user && aklog && exec bash,我可以再次访问我的环境。

所以问题是:是否有一种干净的方法让 sudo 获取我之前拥有的 kerberos 票证并将它们添加到新用户的 kerberos 票证缓存中?

sudo afs kerberos

6
推荐指数
1
解决办法
5036
查看次数

当我退出 SSH 会话时,为什么会出现权限被拒绝错误?

我必须在大学的服务器上运行一些测试。我可以从办公室的桌面 ssh 访问服务器。我想在服务器上启动一个 python 脚本,该脚本将在周末运行多个测试。

办公室的桌面将在周末进入待机状态,因此即使 SSH 会话终止,该进程也必须继续在服务器上运行。

我知道nohupscreentmux,在这样的问题描述:

我现在正在做的是:

  • ssh username@server
  • tmux
  • python3 run_my_tests.py -> 这个脚本做了一堆subprocess.check_output其他脚本,这些脚本本身会启动一些 Java 进程。
  • 测试运行良好。
  • 我使用 Ctrl+B、D 并分离会话。
  • 这样做时,tmux attach我重新获得仍然运行良好的 tmux 会话,没有任何错误。我一直检查这个几分钟,测试运行良好。
  • 我关闭了 ssh 会话

在此之后,如果我通过 SSH 登录到服务器,我确实能够重新连接到正在运行的tmux会话,但是我看到的是:

Traceback (most recent call last):
  File "run_my_examples.py", line 70, in <module>
  File "run_my_examples.py", line 62, in run_cmd_aggr
  File "run_my_examples.py", line 41, in run_cmd …
Run Code Online (Sandbox Code Playgroud)

ssh permissions tmux afs kerberos

6
推荐指数
1
解决办法
4771
查看次数

使用 kerberos 无需密码的 SSH 登录

我尝试登录到仅支持使用 kerberos 身份验证登录的服务器。这是我的尝试:

kinit user@FOO.ORG
aklog -c foo.org
ssh server
Run Code Online (Sandbox Code Playgroud)

但后来我又被要求输入密码。

这是我在~/.ssh/config条目中的内容server(我的/etc/ssh/ssh_config是空的):

Host server
    HostName someserver.foo.org
    User user
    ForwardX11 yes
    ForwardX11Trusted yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials yes
Run Code Online (Sandbox Code Playgroud)

据同事说,这(或类似的东西)对他们有用。我可以用 kerberos 令牌登录到其他机器上就好了。我认为它与我的/etc/krb5.conf,但我不知道要寻找什么。我尝试/etc/krb5.conf从服务器复制到我的工作站,但没有成功。

如果我运行,这是输出的一部分ssh -vvv server

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Server not found in Kerberos database

debug1: Unspecified GSS failure.  Minor code may provide more information
Server not found in Kerberos …
Run Code Online (Sandbox Code Playgroud)

ssh authentication kerberos

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

kerberos ×10

ssh ×3

afs ×2

authentication ×2

login ×2

administration ×1

command-line ×1

kde ×1

ldap ×1

linux ×1

pam ×1

passwd ×1

permissions ×1

sssd ×1

sudo ×1

tmux ×1