Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟
引言
在日常的后端開發(fā)和運(yùn)維工作中,我們經(jīng)常需要頻繁登錄不同的服務(wù)器進(jìn)行部署、排查問題或上傳文件。傳統(tǒng)的基于用戶名和密碼的登錄方式既不安全又不高效。為此,我們可以利用 SSH 公鑰認(rèn)證的方式,實(shí)現(xiàn)無密碼(免密)登錄遠(yuǎn)程服務(wù)器,提升安全性與操作效率。
本文將一步步帶你完成 SSH 公鑰創(chuàng)建及遠(yuǎn)程服務(wù)器配置,實(shí)現(xiàn) SSH 免密登錄機(jī)群。
SSH 公鑰認(rèn)證簡(jiǎn)介
SSH(Secure Shell)支持多種認(rèn)證方式,其中公鑰認(rèn)證使用非對(duì)稱加密(如 RSA、ECDSA、ED25519)機(jī)制,客戶端通過私鑰發(fā)起認(rèn)證請(qǐng)求,遠(yuǎn)程服務(wù)器用已保存的公鑰進(jìn)行驗(yàn)證。它的優(yōu)勢(shì)為:
- 更高的安全性:避免密碼泄露或暴力 破解
- 更好的自動(dòng)化支持:適用于腳本、CI/CD 流程中免交互登錄
- 更高效的運(yùn)維體驗(yàn):無需每次連接服務(wù)器都輸入密碼
生成 SSH 密鑰對(duì)
打開終端,輸入以下命令即可:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
參數(shù)說明:
- -t rsa:指定密鑰類型為 RSA;
- -b 4096:密鑰長(zhǎng)度,建議使用 4096 位,增強(qiáng)安全性;
- -C:用于加一個(gè)標(biāo)識(shí)注釋,通常填寫你的郵箱或用途說明。
執(zhí)行后會(huì)提示:
Enter file in which to save the key (/home/youruser/.ssh/id_rsa):
你可以直接回車,默認(rèn)保存在 ~/.ssh/id_rsa(私鑰)和 ~/.ssh/id_rsa.pub(公鑰)文件中。
接下來是:
Enter passphrase (empty for no passphrase): Enter same passphrase again:
為了增強(qiáng)安全性,建議設(shè)置私鑰密碼。如果是腳本或自動(dòng)化環(huán)境中使用,可空密碼,但需慎重評(píng)估風(fēng)險(xiǎn)。
將公鑰添加到遠(yuǎn)程主機(jī)(server)
使用 ssh-copy-id 命令輕松將本地公鑰寫入遠(yuǎn)程服務(wù)器的 ~/.ssh/authorized_keys 文件中。
格式如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub 用戶名@服務(wù)器IP
示例:
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.1
系統(tǒng)會(huì)提示輸入該服務(wù)器的登錄密碼,認(rèn)證成功后即可完成綁定。
如果該命令提示找不到 ssh-copy-id,可使用以下命令手動(dòng)復(fù)制:
cat ~/.ssh/id_rsa.pub | ssh 用戶名@遠(yuǎn)程IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
測(cè)試是否免密登錄成功
公鑰拷貝完成后,使用 ssh 命令連接遠(yuǎn)程服務(wù)器:
ssh hadoop@192.168.0.1
如無意外,將直接登錄進(jìn)入遠(yuǎn)程主機(jī),不再需要輸入密碼,即可完成免密登錄驗(yàn)證。
適用于多個(gè)目標(biāo)主機(jī)(批量推送)
如果你需要將公鑰推送至多臺(tái)服務(wù)器,比如用于機(jī)器學(xué)習(xí)分布式訓(xùn)練、Hadoop/Spark 集群部署,可使用 shell 腳本進(jìn)行批量操作。例如:
#!/bin/bash
USER="hadoop"
HOSTS=("192.168.0.1" "192.168.0.2" "192.168.0.3")
for HOST in "${HOSTS[@]}"; do
echo "Copying SSH key to $USER@$HOST"
ssh-copy-id -i ~/.ssh/id_rsa.pub "$USER@$HOST"
done
根據(jù)實(shí)際配置調(diào)整用戶名或主機(jī)列表。
安全建議
私鑰文件建議設(shè)置為 600 權(quán)限,僅允許用戶本人讀寫:
chmod 600 ~/.ssh/id_rsa
禁止將私鑰隨意上傳到遠(yuǎn)程服務(wù)器,或在代碼倉庫存儲(chǔ)私鑰;
為私鑰加密短語(passphrase),在安全與自動(dòng)化之間尋求平衡;
若同一機(jī)器需連接多個(gè)遠(yuǎn)端主機(jī),可以為每個(gè)主機(jī)使用配置文件(~/.ssh/config)統(tǒng)一管理多個(gè)密鑰與主機(jī)別名,提高可維護(hù)性。
示例 ~/.ssh/config:
Host server1
HostName 192.168.0.1
User hadoop
IdentityFile ~/.ssh/id_rsa
Host server2
HostName 192.168.0.2
User hadoop
IdentityFile ~/.ssh/id_rsa
使用時(shí)無需填寫完整命令:
ssh server1
小結(jié)
通過以上步驟,你就可以輕松地為自己的開發(fā)、部署流程實(shí)現(xiàn)高效的免密登錄。無論是單機(jī)還是集群環(huán)境,該技巧都能極大地提升工作效率并加強(qiáng)安全性。建議將這項(xiàng)操作作為開發(fā)者或運(yùn)維人員的必備基礎(chǔ)技能。
如果你想在 CI/CD、Git 提交或遠(yuǎn)程 API 自動(dòng)化中實(shí)現(xiàn)安全連接,也可以基于 SSH 做更深入的免密自動(dòng)化處理。
以上就是Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Linux服務(wù)器間免密登錄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux VPS備份教程 數(shù)據(jù)庫/網(wǎng)站文件自動(dòng)定時(shí)備份
這篇文章老左分享目前大家比較常用的自動(dòng)定時(shí)備份方案,數(shù)據(jù)庫發(fā)送到我們的郵箱、文件發(fā)送同步到我們另外空間FTP中2012-09-09
apache的AllowOverride以及Options使用詳解
通常利用Apache的rewrite模塊對(duì) URL 進(jìn)行重寫的時(shí)候, rewrite規(guī)則會(huì)寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對(duì).htaccess 所在目錄進(jìn)行配置2012-11-11
CentOS7 + node.js + nginx + MySQL搭建服務(wù)器全過程
這篇文章主要介紹了關(guān)于CentOS7 + node.js + nginx + MySQL搭建服務(wù)器的全過程,文章通過一步步的步驟進(jìn)行介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
linux服務(wù)器上安裝jdk的兩種方法(yum+下載包)
這篇文章主要給大家介紹了關(guān)于在linux服務(wù)器上安裝jdk的兩種方法,分別是利用yum安裝和從官網(wǎng)下載包安裝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2018-05-05
Linux使用waitpid回收多個(gè)子進(jìn)程的方法小結(jié)
在Unix/Linux系統(tǒng)中,創(chuàng)建子進(jìn)程后,父進(jìn)程需要負(fù)責(zé)回收這些子進(jìn)程的資源,否則會(huì)導(dǎo)致"僵尸進(jìn)程"的產(chǎn)生,本文將詳細(xì)介紹如何使用waitpid系統(tǒng)調(diào)用有效地回收多個(gè)子進(jìn)程,需要的朋友可以參考下2025-11-11

