Linux通過(guò)密鑰認(rèn)證實(shí)現(xiàn)SSH無(wú)密碼登錄
在服務(wù)器管理中,使用 SSH 密鑰認(rèn)證可以有效提升登錄安全性。相比傳統(tǒng)的密碼認(rèn)證,密鑰認(rèn)證不僅避免了暴 力 破 解的風(fēng)險(xiǎn),同時(shí)也簡(jiǎn)化了多臺(tái)服務(wù)器間的登錄流程。本文將詳細(xì)介紹如何在 Windows 到 Linux 和 Linux 到 Linux 的場(chǎng)景中配置密鑰認(rèn)證,并在配置完成后禁用密碼登錄,從而提高系統(tǒng)安全性。
Windows 到 Linux 的密鑰登錄
生成 SSH 密鑰對(duì)(使用 Windows 自帶的 OpenSSH)
如果你使用的是 Windows 10 或更新版本,可以直接利用 OpenSSH 工具生成密鑰。在 PowerShell 中運(yùn)行以下命令:
ssh-keygen -t rsa -b 4096
接下來(lái)根據(jù)提示為私鑰添加密碼,一般情況可以直接 Enter 兩次跳過(guò),如若情況特殊可自行設(shè)置密碼
- 參數(shù)說(shuō)明:
-t rsa:指定生成 RSA 類(lèi)型的密鑰(也可以選擇ed25519)。-b 4096:指定密鑰長(zhǎng)度為 4096 位,安全性更高。
生成后,會(huì)在指定目錄下生成兩個(gè)文件:
- 私鑰(
id_rsa):請(qǐng)務(wù)必妥善保管,不要泄露。 - 公鑰(
id_rsa.pub):將用于配置在 Linux 服務(wù)器上。
我是Administrator用戶(hù)

上傳公鑰到 Linux 服務(wù)器
將生成的公鑰上傳到目標(biāo) Linux 服務(wù)器??梢允褂?nbsp;scp 命令:
scp C:\Users\你的用戶(hù)名\.ssh\id_rsa.pub 用戶(hù)名@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
解釋?zhuān)?/strong>
mkdir -p ~/.ssh:創(chuàng)建 SSH 目錄(如果不存在)。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys:將公鑰追加到認(rèn)證文件中。chmod 700和chmod 600:設(shè)置目錄及文件權(quán)限,防止未授權(quán)訪(fǎng)問(wèn)。- 最后刪除臨時(shí)上傳的公鑰文件,保證服務(wù)器整潔。
我是root用戶(hù)

禁用密碼登錄
為防止密碼被暴力破解,建議修改 SSH 配置文件,禁用密碼登錄:
sudo vim /etc/ssh/sshd_config
找到以下配置項(xiàng),修改為:
PasswordAuthentication no PubkeyAuthentication yes
PasswordAuthentication no這行指令禁用了密碼認(rèn)證。也就是說(shuō),用戶(hù)將不能使用用戶(hù)名和密碼來(lái)登錄服務(wù)器,進(jìn)一步減少暴力破解攻擊的風(fēng)險(xiǎn),從而提高安全性。
PubkeyAuthentication yes這行指令啟用了基于公鑰的認(rèn)證方式。服務(wù)器將接受客戶(hù)端使用密鑰對(duì)中私鑰所產(chǎn)生的簽名進(jìn)行身份驗(yàn)證。只有當(dāng)客戶(hù)端的公鑰出現(xiàn)在服務(wù)器用戶(hù)的
~/.ssh/authorized_keys文件中時(shí),才會(huì)允許登錄。
保存后,重啟 SSH 服務(wù):
sudo systemctl restart sshd
注意: 在禁用密碼認(rèn)證前,請(qǐng)確保已經(jīng)測(cè)試過(guò)密鑰登錄正常可用,否則可能會(huì)導(dǎo)致遠(yuǎn)程無(wú)法訪(fǎng)問(wèn)!
重啟完,不要直接退出服務(wù)器,可以另開(kāi)窗口測(cè)試我是xshell

現(xiàn)在讓我秘鑰,不要密碼了
測(cè)試 SSH 免密登錄
在 Windows 的 PowerShell 中執(zhí)行:
ssh -i C:\Users\你的用戶(hù)名\.ssh\id_rsa 用戶(hù)名@Linux服務(wù)器IP

如果無(wú)需輸入密碼即可登錄,說(shuō)明配置成功。同時(shí)可以在 Windows 端配置 ~/.ssh/config 文件,以簡(jiǎn)化連接過(guò)程:
Host myserver
HostName Linux服務(wù)器IP
User 用戶(hù)名
IdentityFile C:\Users\你的用戶(hù)名\.ssh\id_rsa
以后只需執(zhí)行 ssh myserver 即可連接。
Linux 到 Linux 的密鑰登錄
在多臺(tái) Linux 服務(wù)器之間,使用 SSH 密鑰認(rèn)證同樣適用。下面介紹如何在 Linux 環(huán)境下生成密鑰、傳輸公鑰以及配置無(wú)密碼登錄。
在源服務(wù)器生成密鑰對(duì)
在終端中執(zhí)行:
ssh-keygen -t rsa -b 4096
同樣會(huì)生成:
- 私鑰:
~/.ssh/id_rsa - 公鑰:
~/.ssh/id_rsa.pub
將公鑰復(fù)制到目標(biāo)服務(wù)器
可以使用 ssh-copy-id 命令將公鑰自動(dòng)添加到目標(biāo)服務(wù)器的 authorized_keys 文件中:
ssh-copy-id 用戶(hù)名@目標(biāo)服務(wù)器IP
執(zhí)行后會(huì)要求輸入目標(biāo)服務(wù)器的密碼,輸入后命令會(huì)自動(dòng)將公鑰添加到 ~/.ssh/authorized_keys 文件中,并設(shè)置合適的權(quán)限。
如果 ssh-copy-id 命令不可用,也可以手動(dòng)復(fù)制:
scp ~/.ssh/id_rsa.pub 用戶(hù)名@目標(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
測(cè)試密鑰登錄
在源服務(wù)器上測(cè)試 SSH 登錄:
ssh 用戶(hù)名@目標(biāo)服務(wù)器IP
如果無(wú)需輸入密碼即可登錄,則說(shuō)明密鑰認(rèn)證配置成功。
禁用密碼登錄(目標(biāo)服務(wù)器)
和 Windows 到 Linux 的步驟類(lèi)似,在目標(biāo)服務(wù)器上編輯 SSH 配置:
sudo vim /etc/ssh/sshd_config
將以下配置項(xiàng)修改為:
PasswordAuthentication no PubkeyAuthentication yes
保存后重啟 SSH 服務(wù):
sudo systemctl restart sshd
其他安全優(yōu)化及常見(jiàn)問(wèn)題
禁止 root 遠(yuǎn)程登錄
為了進(jìn)一步提升安全性,建議禁用 root 用戶(hù)的 SSH 遠(yuǎn)程登錄。在 /etc/ssh/sshd_config 中找到:
PermitRootLogin yes
修改為:
PermitRootLogin no
然后重啟 SSH 服務(wù)。
配置防火墻和 Fail2ban
- 防火墻設(shè)置: 確保只開(kāi)放必要的端口(通常是 22 端口),并限制部分 IP 訪(fǎng)問(wèn)。
- Fail2ban: 安裝并配置 Fail2ban,可自動(dòng)封禁多次嘗試登錄失敗的 IP 地址,有效防止暴力破解。
常見(jiàn)問(wèn)題及解決方案
- 權(quán)限問(wèn)題: 如果 SSH 登錄時(shí)報(bào)錯(cuò)“Bad permissions”,請(qǐng)檢查
~/.ssh目錄和authorized_keys文件的權(quán)限設(shè)置是否正確。 - 密鑰格式問(wèn)題: 生成密鑰時(shí)若使用了 Passphrase,確保在連接時(shí)正確輸入,否則可以重新生成不含 Passphrase 的密鑰。
- 連接超時(shí): 檢查服務(wù)器的防火墻設(shè)置是否允許 SSH 連接,以及網(wǎng)絡(luò)是否正常。
總結(jié)
通過(guò) SSH 密鑰認(rèn)證實(shí)現(xiàn)無(wú)密碼登錄不僅提升了遠(yuǎn)程管理的便利性,更大幅降低了密碼泄露和暴力破解的風(fēng)險(xiǎn)。無(wú)論是 Windows 到 Linux 還是 Linux 到 Linux 的場(chǎng)景中,都可以按照以下步驟完成配置:
- 生成密鑰對(duì): 在客戶(hù)端生成公鑰和私鑰。
- 上傳公鑰: 將公鑰添加到目標(biāo)服務(wù)器的
authorized_keys文件中,并設(shè)置正確的權(quán)限。 - 禁用密碼登錄: 修改 SSH 配置文件,禁用密碼認(rèn)證,重啟 SSH 服務(wù)。
- 安全加固: 禁止 root 登錄、配置防火墻和 Fail2ban 等措施。
希望本文能幫助大家構(gòu)建更安全、高效的服務(wù)器管理環(huán)境。通過(guò)以上配置,你將能更輕松地管理多臺(tái)服務(wù)器,并有效防止未經(jīng)授權(quán)的訪(fǎng)問(wèn)。
到此這篇關(guān)于Linux通過(guò)密鑰認(rèn)證實(shí)現(xiàn)SSH無(wú)密碼登錄的文章就介紹到這了,更多相關(guān)SSH 無(wú)密碼登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
你必須知道Linux系統(tǒng)的七種優(yōu)勢(shì)
你必須知道Linux系統(tǒng)的七種優(yōu)勢(shì),越來(lái)越多的電腦用戶(hù)開(kāi)始使用 Linux進(jìn)行辦公、學(xué)習(xí),這篇文章主要介紹了Linux系統(tǒng)的多種優(yōu)勢(shì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
在CentOS 6 中安裝 WordPress(二)安裝WordPress
上篇文章我們介紹了WordPress環(huán)境的配置,本文我們就來(lái)詳細(xì)講解下WordPress的安裝,適合新手,高手們請(qǐng)勿拍磚2014-06-06
詳解Linux下crontab的使用與注意事項(xiàng)
這篇文章主要介紹了詳解Linux下crontab的使用與注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
CentOS7安裝PHP7 Redis擴(kuò)展的方法步驟
這篇文章主要介紹了CentOS7安裝PHP7 Redis擴(kuò)展的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
Linux系統(tǒng)使用用戶(hù)密鑰ssh主機(jī)訪(fǎng)問(wèn)
這篇文章主要介紹了Linux系統(tǒng)使用用戶(hù)密鑰ssh主機(jī)訪(fǎng)問(wèn),它在安全上完全大于直接輸入root 的密碼,有需要的可以了解一下。2016-10-10
Linux之計(jì)劃任務(wù)和調(diào)度命令at/cron詳解
這篇文章主要介紹了Linux之計(jì)劃任務(wù)和調(diào)度命令at/cron的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04

