RedHat上SELinux與SSH公鑰認證的衝突解決方案

政府組態基準(GCB)簡介

政府組態基準(Government Configuration Baseline,簡稱GCB)是一套為提高政府部門資訊系統安全性而設計的標準配置指南。GCB旨在確保系統符合特定的安全需求,包括加強作業系統、應用程式和網路配置。

SELinux簡介

SELinux(Security-Enhanced Linux)是一種強制存取控制系統,用於Linux操作系統。它提供了一種機制,可以細致地控制程式和使用者可以訪問的系統資源。SELinux的策略是非常靈活的,可以根據具體需求調整。

問題描述

在套用GCB之後,一些RedHat用戶報告他們無法使用SSH的public key authentication功能進行遠端登入。這個問題通常是由於SELinux策略對.ssh/authorized_keys文件的存取控制不當所致。

解決方案

為了解決這個問題,可以通過以下指令調整SELinux的文件上下文設定:

semanage fcontext -a -t ssh_home_t '/test/.ssh/authorized_keys'
restorecon -v '/test/.ssh/authorized_keys'

這些指令的作用如下:

  1. semanage fcontext:設定.ssh/authorized_keys文件的SELinux類型為ssh_home_t
  2. restorecon:應用這些更改,更新文件的安全上下文。

透過這兩條指令,系統管理員可以確保SELinux的策略不會阻礙SSH使用公鑰認證的功能,同時保持系統的安全性。

若找不到 semanage 請安裝

dnf install policycoreutils-python-utils