Linux通過密鑰認(rèn)證實現(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
找到以下配置項,修改為:
PasswordAuthentication no PubkeyAuthentication yes
PasswordAuthentication no這行指令禁用了密碼認(rèn)證。也就是說,用戶將不能使用用戶名和密碼來登錄服務(wù)器,進(jìn)一步減少暴力破解攻擊的風(fēng)險,從而提高安全性。
PubkeyAuthentication yes這行指令啟用了基于公鑰的認(rèn)證方式。服務(wù)器將接受客戶端使用密鑰對中私鑰所產(chǎn)生的簽名進(jìn)行身份驗證。只有當(dāng)客戶端的公鑰出現(xiàn)在服務(wù)器用戶的
~/.ssh/authorized_keys文件中時,才會允許登錄。
保存后,重啟 SSH 服務(wù):
sudo systemctl restart sshd
注意: 在禁用密碼認(rèn)證前,請確保已經(jīng)測試過密鑰登錄正??捎茫駝t可能會導(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
將以下配置項修改為:
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)證實現(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)證實現(xiàn)SSH無密碼登錄的文章就介紹到這了,更多相關(guān)SSH 無密碼登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Linux系統(tǒng)配置nginx的負(fù)載均衡
這篇文章主要介紹了詳解Linux系統(tǒng)配置nginx的負(fù)載均衡的相關(guān)資料,這里對負(fù)載均衡的幾種方式進(jìn)行了講解并附NGINX配置文件,需要的朋友可以參考下2017-03-03
安全檢測Unix和Linux服務(wù)器安全設(shè)置入門精講
盡管為服務(wù)器設(shè)計軟件的軟件工程師們想方設(shè)法提高系統(tǒng)的安全性,然而由于系統(tǒng)管理員的水平參差不齊或安全意識底下,往往給黑客提供了入侵的機(jī)會。2008-05-05
LAMP服務(wù)器性能優(yōu)化技巧之Apache服務(wù)器優(yōu)化
目前LAMP (Linux + Apache + MySQL + PHP) 近幾年來發(fā)展迅速,已經(jīng)成為Web 服務(wù)器的事實標(biāo)準(zhǔn)。本文我們將介紹基于LAMP組合的服務(wù)器的性能優(yōu)化技巧2012-02-02
使用VMware 15 安裝虛擬機(jī)和使用CentOS 8的步驟詳解
這篇文章主要介紹了使用VMware 15 安裝虛擬機(jī)和使用CentOS 8的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
淺析一下Linux上對函數(shù)進(jìn)行hook的兩種方式
這篇文章主要來和大家聊一聊如何在 Linux 上對函數(shù)進(jìn)行hook,這里介紹兩種方式,輕量級的 LD_PRELOAD 攔截和funchook 攔截,有需要的小伙伴可以了解下2025-06-06

