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

