Linux主機用戶登陸安全配置
在Linux主機上進行用戶登錄安全配置是一個重要的安全措施,可以防止未經授權的訪問。以下是如何創建用戶hbu、賦予其sudo權限,以及禁止root用戶SSH登錄,以及通過ssh key管理主機用戶登陸。
創建用戶hbu
使用具有root權限的賬戶(或者通過sudo)登錄到你的Linux主機,通過useradd命令創建新用戶hbu,并設置密碼。
# 創建用戶
sudo useradd -m hbu
# passwd命令為新用戶設置密碼。
sudo passwd hbu
備注:如果采用root用戶,則不需要加sudo;useradd創建用戶命令中的參數-m選項,會自動為用戶創建主目錄。
賦予用戶sudo權限
1.備份sudo配置文件/etc/sudoers
sudo cp /etc/sudoers /root/sudoers.bak
2.編輯sudoers配置文件
sudo visudo
3.添加配置項
# User privilege specification
root ALL=(ALL:ALL) ALL
hbu ALL=(ALL:ALL) NOPASSWD:ALL
4.保存并退出。
在visudo中,你可以按Ctrl+X,然后按Y保存修改。
備注:visudo默認采用nano編輯器,如果不熟悉操作命令,可以先為配置文件/etc/sudoers
增加寫權限,然后修改配置內容,保存修改并退出,最后取消/etc/sudoers
寫權限
禁止root用戶ssh登陸
在Linux系統中,出于安全考慮不直接允許root用戶通過SSH遠程登錄。相反,用戶可以使用一個普通用戶賬戶,并通過sudo命令來執行需要root權限的命令。這樣既可以提高安全性,又能保持系統管理的靈活性。
以下是一些禁止root用戶通過SSH登錄的方法:
方法1:修改sshd配置
1.打開SSH配置文件
sudo vim /etc/ssh/sshd_config
2.在文件中找到或添加以下行
PermitRootLogin no
保存并關閉文件。
3.重啟SSH服務以使更改生效
sudo systemctl restart sshd
# 或者
sudo service ssh restart
方法2:使用PAM(Pluggable Authentication Modules)限制
1.創建一個PAM配置文件來限制root登錄:
sudo nano /etc/pam.d/sshd_root_disable
2.在文件中添加以下內容:
auth required pam_access.so list=root deny
3.修改SSH配置文件,指向新的PAM配置文件:
sudo nano /etc/ssh/sshd_config
#添加或修改以下行:
UsePAM yes
AccountRequiredPam root_disable
保存并關閉文件。
4.重啟SSH服務
sudo systemctl restart sshd
# 或者
sudo service ssh restart
配置用戶hbu免密登陸
在Linux系統中配置SSH免密登錄,主要涉及到生成SSH密鑰對,然后將公鑰添加到遠程服務器的~/.ssh/authorized_keys
文件。配置wa完成后,用戶就可以無密碼登錄到遠程服務器。
以下步驟適用于大多數基于Linux的操作系統。
1.生成SSH密鑰對
首先,在本地機器上生成SSH密鑰對。打開終端,執行以下命令:
ssh-keygen -t rsa -b 2048
-
-t rsa
指定密鑰類型為RSA。 -
-b 2048
指定密鑰長度為2048位,這是推薦的長度。
執行上述命令后,系統會詢問保存密鑰的位置(默認為~/.ssh/id_rsa
)和輸入密碼(可選)。如果你不需要密碼保護密鑰,直接按回車即可。
2.將公鑰復制到遠程服務器
生成密鑰對后,使用ssh-copy-id
將公鑰(id_rsa.pub
)添加到遠程服務器的~/.ssh/authorized_keys
文件中。
# ssh-copy-id 用戶名@遠程服務器地址
ssh-copy-id user@192.168.1.100
3.配置SSH免密登錄(可選)
為了確保每次都能免密登錄,你可以在本地機器的~/.ssh/config
文件中添加以下配置:
Host 遠程服務器別名HostName 遠程服務器地址User 用戶名IdentityFile ~/.ssh/id_rsaStrictHostKeyChecking no
將遠程服務器別名替換為你自定義的名稱,例如my_server
,將遠程服務器地址和用戶名替換為實際的服務器地址和用戶名。這樣,你就可以使用別名來免密登錄了:
# ssh 遠程服務器別名
sshl my_server
注意:
-
確保遠程服務器的.ssh目錄和authorized_keys文件的權限設置正確。
-
如果在添加公鑰后仍然無法免密登錄,檢查是否禁用了密碼認證(在
/etc/ssh/sshd_config
中設置PasswordAuthentication no
),并確保SSH服務已重新啟動。 -
本地配置使用
StrictHostKeyChecking no
可以避免首次連接時出現主機密鑰驗證的提示,但這會降低安全性。建議僅在信任網絡中使用此設置。