【openSSH】openEuler上升级openSSH至10.0p1版本

OpenSSH 官方网站和源码包格式

OpenSSH 的官方下载地址: https://www.openssh.com/portable.html
OpenBSD 官方镜像:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

在官网或镜像站,你可以找到各个版本的 OpenSSH 源码包,命名格式为:

openssh-X.XpY.tar.gz
X.X 是主版本号(如 10.0)
Y 是补丁号(如 p1)

关于 openSSH 关于 GSSAPI 的配置说明

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no

解读 /etc/ssh/sshd_config 中的 GSSAPI 配置

1. GSSAPIAuthentication yes

  • 作用:启用 GSSAPI 身份验证机制(基于 Kerberos 的单点登录)。
  • 详细解释
    • GSSAPI(Generic Security Services Application Program Interface)是一种安全认证框架,通常与 Kerberos 协议集成。
    • 当客户端尝试连接时,如果服务器启用此选项,会通过 Kerberos 票据(而非密码或公钥)验证用户身份。
    • 典型场景
      用户在企业内网已登录 Kerberos 域(例如 Active Directory),访问 SSH 服务器时自动完成认证,无需二次输入密码。
    • 依赖条件
      • 服务器和客户端均需安装 Kerberos 库(如 krb5-user)。
      • /etc/krb5.conf 需正确配置域和 KDC(密钥分发中心)。
      • 服务器主机必须加入 Kerberos 域,并生成有效的 host 凭据(例如 host/server.example.com@REALM)。

2. GSSAPICleanupCredentials no

  • 作用:控制用户退出 SSH 会话后是否自动销毁 Kerberos 凭据缓存
  • 详细解释
    • 默认行为:若未显式配置,默认值为 yes(退出时清理凭据)。
    • 设置为 no 表示:
      用户通过 SSH 会话获取的 Kerberos 票据(例如使用 kinit 或登录时自动获取)不会在断开连接时被清除
    • 影响
      • 便利性提升:用户后续操作(如执行 klist 或访问其他 Kerberos 服务)无需重新认证。
      • 安全风险:若攻击者获取服务器访问权限,可能窃取遗留的票据进行横向移动(需结合其他漏洞)。
    • 适用场景
      需要 SSH 会话结束后保持凭据的环境(例如运行后台服务或脚本需持续使用 Kerberos 认证)。

配置关联与注意事项

  1. 启用 Kerberos 认证流程

    # 客户端登录示例(已加入域的用户)
    $ ssh user@server.example.com
    # 自动使用 Kerberos 票据认证,无需密码
    
  2. 安全建议

    • 仅限可信环境:启用 GSSAPIAuthentication 需确保网络和 Kerberos 基础设施安全。
    • 权衡清理策略
      GSSAPICleanupCredentials no 增加了便利性,但需评估遗留凭据的风险。生产环境建议结合会话监控和定期票据清理。
  3. 调试命令

    # 检查 Kerberos 票据状态(客户端或服务器)
    $ klist
    
    # 测试 GSSAPI 认证过程(客户端)
    $ ssh -vvv -o GSSAPIAuthentication=yes user@xx.xx.xx.xx
    

总结

  • GSSAPIAuthentication yes → 开启 Kerberos 单点登录,提升用户体验(免密登录)。
  • GSSAPICleanupCredentials no → 保持凭据持久化,适合需要会话结束后继续使用 Kerberos 服务的场景,但需注意安全风险。

推荐配置场景:企业内网统一认证环境(如 Active Directory 或 MIT Kerberos 域),同时通过防火墙策略限制 SSH 访问来源。

如何升级 openSSH至10.0p1版本并支持 GSSAPI?

1. 安装编译依赖

yum   -y install gcc make zlib-devel openssl-devel pam-devel krb5-devel 

2 下载源码包

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz

3. 编译升级

tar  -zxf  openssh-10.0p1.tar.gz
cd openssh-10.0p1

./configure \
  --prefix=/usr \
  --sysconfdir=/etc/ssh \
  --with-md5-passwords \
  --with-pam \
  --with-zlib \
  --with-ssl-engine \
  --with-kerberos5 \     
  --with-gssapi          

make clean   
make
make install
image.png

4. 检查模块支持情况

# 检查新版本是否支持 GSSAPI
/usr/sbin/sshd -T | grep gssapi

# 预期输出(表示支持):
gssapiauthentication yes
gssapicleanupcredentials yes

5. 重启 SSH 服务

systemctl restart sshd

6. 测试 Kerberos 功能

# 测试 SSH 登录(使用 GSSAPI)
ssh -vvv  -o GSSAPIAuthentication=yes  user@xx.xx.xx.xx
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容