Linux通過密鑰認(rèn)證實(shí)現(xiàn)SSH無密碼登錄
在服務(wù)器管理中,使用 SSH 密鑰認(rèn)證可以有效提升登錄安全性。相比傳統(tǒng)的密碼認(rèn)證,密鑰認(rèn)證不僅避免了暴 力 破 解的風(fēng)險,同時也簡化了多臺服務(wù)器間的登錄流程。本文將詳細(xì)介紹如何在 Windows 到 Linux 和 Linux 到 Linux 的場景中配置密鑰認(rèn)證,并在配置完成后禁用密碼登錄,從而提高系統(tǒng)安全性。
Windows 到 Linux 的密鑰登錄
生成 SSH 密鑰對(使用 Windows 自帶的 OpenSSH)
如果你使用的是 Windows 10 或更新版本,可以直接利用 OpenSSH 工具生成密鑰。在 PowerShell 中運(yùn)行以下命令:
ssh-keygen -t rsa -b 4096
接下來根據(jù)提示為私鑰添加密碼,一般情況可以直接 Enter 兩次跳過,如若情況特殊可自行設(shè)置密碼
- 參數(shù)說明:
-t rsa
:指定生成 RSA 類型的密鑰(也可以選擇ed25519
)。-b 4096
:指定密鑰長度為 4096 位,安全性更高。
生成后,會在指定目錄下生成兩個文件:
- 私鑰(
id_rsa
):請務(wù)必妥善保管,不要泄露。 - 公鑰(
id_rsa.pub
):將用于配置在 Linux 服務(wù)器上。
我是Administrator用戶
上傳公鑰到 Linux 服務(wù)器
將生成的公鑰上傳到目標(biāo) Linux 服務(wù)器??梢允褂?nbsp;scp
命令:
scp C:\Users\你的用戶名\.ssh\id_rsa.pub 用戶名@Linux服務(wù)器IP:~/
登錄到服務(wù)器后,執(zhí)行以下命令配置公鑰:linux上操作的
mkdir -p ~/.ssh cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys rm ~/id_rsa.pub
解釋:
mkdir -p ~/.ssh
:創(chuàng)建 SSH 目錄(如果不存在)。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
:將公鑰追加到認(rèn)證文件中。chmod 700
和chmod 600
:設(shè)置目錄及文件權(quán)限,防止未授權(quán)訪問。- 最后刪除臨時上傳的公鑰文件,保證服務(wù)器整潔。
我是root用戶
禁用密碼登錄
為防止密碼被暴力破解,建議修改 SSH 配置文件,禁用密碼登錄:
sudo vim /etc/ssh/sshd_config
找到以下配置項(xiàng),修改為:
PasswordAuthentication no PubkeyAuthentication yes
PasswordAuthentication no這行指令禁用了密碼認(rèn)證。也就是說,用戶將不能使用用戶名和密碼來登錄服務(wù)器,進(jìn)一步減少暴力破解攻擊的風(fēng)險,從而提高安全性。
PubkeyAuthentication yes這行指令啟用了基于公鑰的認(rèn)證方式。服務(wù)器將接受客戶端使用密鑰對中私鑰所產(chǎn)生的簽名進(jìn)行身份驗(yàn)證。只有當(dāng)客戶端的公鑰出現(xiàn)在服務(wù)器用戶的
~/.ssh/authorized_keys
文件中時,才會允許登錄。
保存后,重啟 SSH 服務(wù):
sudo systemctl restart sshd
注意: 在禁用密碼認(rèn)證前,請確保已經(jīng)測試過密鑰登錄正常可用,否則可能會導(dǎo)致遠(yuǎn)程無法訪問!
重啟完,不要直接退出服務(wù)器,可以另開窗口測試
我是xshell
現(xiàn)在讓我秘鑰,不要密碼了
測試 SSH 免密登錄
在 Windows 的 PowerShell 中執(zhí)行:
ssh -i C:\Users\你的用戶名\.ssh\id_rsa 用戶名@Linux服務(wù)器IP
如果無需輸入密碼即可登錄,說明配置成功。同時可以在 Windows 端配置 ~/.ssh/config
文件,以簡化連接過程:
Host myserver HostName Linux服務(wù)器IP User 用戶名 IdentityFile C:\Users\你的用戶名\.ssh\id_rsa
以后只需執(zhí)行 ssh myserver
即可連接。
Linux 到 Linux 的密鑰登錄
在多臺 Linux 服務(wù)器之間,使用 SSH 密鑰認(rèn)證同樣適用。下面介紹如何在 Linux 環(huán)境下生成密鑰、傳輸公鑰以及配置無密碼登錄。
在源服務(wù)器生成密鑰對
在終端中執(zhí)行:
ssh-keygen -t rsa -b 4096
同樣會生成:
- 私鑰:
~/.ssh/id_rsa
- 公鑰:
~/.ssh/id_rsa.pub
將公鑰復(fù)制到目標(biāo)服務(wù)器
可以使用 ssh-copy-id
命令將公鑰自動添加到目標(biāo)服務(wù)器的 authorized_keys
文件中:
ssh-copy-id 用戶名@目標(biāo)服務(wù)器IP
執(zhí)行后會要求輸入目標(biāo)服務(wù)器的密碼,輸入后命令會自動將公鑰添加到 ~/.ssh/authorized_keys
文件中,并設(shè)置合適的權(quán)限。
如果 ssh-copy-id
命令不可用,也可以手動復(fù)制:
scp ~/.ssh/id_rsa.pub 用戶名@目標(biāo)服務(wù)器IP:~/
登錄目標(biāo)服務(wù)器后:
mkdir -p ~/.ssh cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys rm ~/id_rsa.pub
測試密鑰登錄
在源服務(wù)器上測試 SSH 登錄:
ssh 用戶名@目標(biāo)服務(wù)器IP
如果無需輸入密碼即可登錄,則說明密鑰認(rèn)證配置成功。
禁用密碼登錄(目標(biāo)服務(wù)器)
和 Windows 到 Linux 的步驟類似,在目標(biāo)服務(wù)器上編輯 SSH 配置:
sudo vim /etc/ssh/sshd_config
將以下配置項(xiàng)修改為:
PasswordAuthentication no PubkeyAuthentication yes
保存后重啟 SSH 服務(wù):
sudo systemctl restart sshd
其他安全優(yōu)化及常見問題
禁止 root 遠(yuǎn)程登錄
為了進(jìn)一步提升安全性,建議禁用 root 用戶的 SSH 遠(yuǎn)程登錄。在 /etc/ssh/sshd_config
中找到:
PermitRootLogin yes
修改為:
PermitRootLogin no
然后重啟 SSH 服務(wù)。
配置防火墻和 Fail2ban
- 防火墻設(shè)置: 確保只開放必要的端口(通常是 22 端口),并限制部分 IP 訪問。
- Fail2ban: 安裝并配置 Fail2ban,可自動封禁多次嘗試登錄失敗的 IP 地址,有效防止暴力破解。
常見問題及解決方案
- 權(quán)限問題: 如果 SSH 登錄時報錯“Bad permissions”,請檢查
~/.ssh
目錄和authorized_keys
文件的權(quán)限設(shè)置是否正確。 - 密鑰格式問題: 生成密鑰時若使用了 Passphrase,確保在連接時正確輸入,否則可以重新生成不含 Passphrase 的密鑰。
- 連接超時: 檢查服務(wù)器的防火墻設(shè)置是否允許 SSH 連接,以及網(wǎng)絡(luò)是否正常。
總結(jié)
通過 SSH 密鑰認(rèn)證實(shí)現(xiàn)無密碼登錄不僅提升了遠(yuǎn)程管理的便利性,更大幅降低了密碼泄露和暴力破解的風(fēng)險。無論是 Windows 到 Linux 還是 Linux 到 Linux 的場景中,都可以按照以下步驟完成配置:
- 生成密鑰對: 在客戶端生成公鑰和私鑰。
- 上傳公鑰: 將公鑰添加到目標(biāo)服務(wù)器的
authorized_keys
文件中,并設(shè)置正確的權(quán)限。 - 禁用密碼登錄: 修改 SSH 配置文件,禁用密碼認(rèn)證,重啟 SSH 服務(wù)。
- 安全加固: 禁止 root 登錄、配置防火墻和 Fail2ban 等措施。
希望本文能幫助大家構(gòu)建更安全、高效的服務(wù)器管理環(huán)境。通過以上配置,你將能更輕松地管理多臺服務(wù)器,并有效防止未經(jīng)授權(quán)的訪問。
到此這篇關(guān)于Linux通過密鑰認(rèn)證實(shí)現(xiàn)SSH無密碼登錄的文章就介紹到這了,更多相關(guān)SSH 無密碼登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在CentOS 6 中安裝 WordPress(二)安裝WordPress
上篇文章我們介紹了WordPress環(huán)境的配置,本文我們就來詳細(xì)講解下WordPress的安裝,適合新手,高手們請勿拍磚2014-06-06詳解Linux下crontab的使用與注意事項(xiàng)
這篇文章主要介紹了詳解Linux下crontab的使用與注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01CentOS7安裝PHP7 Redis擴(kuò)展的方法步驟
這篇文章主要介紹了CentOS7安裝PHP7 Redis擴(kuò)展的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Linux系統(tǒng)使用用戶密鑰ssh主機(jī)訪問
這篇文章主要介紹了Linux系統(tǒng)使用用戶密鑰ssh主機(jī)訪問,它在安全上完全大于直接輸入root 的密碼,有需要的可以了解一下。2016-10-10Linux之計劃任務(wù)和調(diào)度命令at/cron詳解
這篇文章主要介紹了Linux之計劃任務(wù)和調(diào)度命令at/cron的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04