我們正常使用 ssh 遠端登入伺服器進行操作,需要輸入使用者名稱、伺服器ip以及密碼,當我們需要同時管理多個伺服器的時候,每次都需要重複輸入這些東西會顯得特別麻煩和浪費時間,因此我們可以通過配置金鑰來實現ubuntu免密碼登入。
實現這一目標五部,分別為:
- 本地客戶端生成金鑰對
- 上傳金鑰到伺服器端
- 伺服器端將金鑰新增到 authorized_keys
- 本地客戶端配置 ssh,新增伺服器別名
- 測試
如果客戶端是使用 macos 或者 linux 系統,可以直接在終端使用以下操作即可,如果 window 系統,建議先安裝 git-bash,git-bash 自帶 ssh 工具,在 git-bash 下,操作也和 linux 或者 macos 系統一樣。
在生成金鑰對之前,我們可以先檢視一下我們是否已經生成過金鑰對,可以通過以下命令:
ls -la ~/.ssh
如果輸出有id_rsa
和id_rsa.pub
,那麼就證明之前曾經生成過金鑰對,其中id_rsa
是私鑰,id_rsa.pub
是公鑰,我們可以直接使用。如果沒有看到這兩個檔案,那麼請回憶是否自己命名的金鑰對,如果沒有或者已經忘記是否曾經生成過,那麼久可以重新建立乙個。方法如下:
ssh-keygen
-t rsa -b
2048
執行命令後,會提示金鑰儲存位置,以及詢問是否需要設定密碼,一般我們可以一路按enter
確認即可完成金鑰生成。
完成後我們再次檢視~/.ssh
資料夾下是否由我們新建立的金鑰即可。
接下來,我們將我們建立好的公鑰上傳到伺服器上,我們將會使用到scp
命令。
scp ~/.ssh/id_rsa.pub server
username>@server
ipaddress>:~
這裡需要注意的是,我們需要上傳的是公鑰,其檔名為id_rsa.pub
,私鑰是需要我們保密的,這裡不要上傳錯。
接下來,我們需要登入我們的伺服器,然後將我們剛上傳的公鑰新增到 authorized_keys中。在新增之前,我們需要先做一下準備,具體如下:
- 檢查是否存在 .ssh 檔案
- 如果不存在需要自行建立
如果是剛安裝的系統,以我的 ubuntu 16.04.4 為例,預設的 ssh 是沒有自動建立 .ssh 資料夾的,這需要我們自己建立。不同版本的系統或者以不同途徑安裝的 ssh 可能情況會有所不一樣,請根據實際情況處理。
# 檢視是否存來 .ssh 資料夾
ls -la ~
# 如果不存在,建立 .ssh 資料夾
mkdir .ssh
# 將公鑰新增到 authorized_keys 檔案中
cat id_rsa.pub >> ~/.ssh/authorized_keys
以上即完成操作,在 ubuntu 16.04.4 的系統預設配置中,以上操作完成即可。然而,在一些不同版本的系統中,可能還需要配置以下 ssh 的配置,具體如下:
- 備份/etc/ssh/sshd_config
- 編輯/etc/ssh/sshd_config
,將pubkeyauthentication no
修改為pubkeyauthentication yes
完成上面的配置後,我們可以嘗試在本地中嘗試使用金鑰登入看是否成功:
ssh -i ~/.ssh/id_rsa server
name>@server
ipaddress>
如果配置正確就可以正常免密碼登入。
為了解決需要管理多台伺服器,不希望記住太多不同的使用者名稱和位址的問題,我們還可以為設定別名登入,具體操作如下:
- 在本地 .ssh/ 資料夾下建立 config
- 向 config 中新增別名資訊
# ~/.ssh/config 配置格式
host
hostname
port
user
identityfile ~/.ssh/id_rsa
完成所有配置後,我們可以測試一下配置是否正確:
ssh alias>
如果能正常免密碼登入,說明配置成功,我們以後便可以通過這樣直接輸入伺服器別名的方式快速登入伺服器了。 Linux遠端登入免密碼設定
免密碼登入可以讓使用者不輸入密碼直接連到其他主機或同一臺機器的不同使用者,方便快捷 密碼登入適用於大批量集群操作通過公鑰私鑰登入認證的場景有很多,但原理相似 為了更加直觀的說明,現假設由a主機免密登入到b主機 在主機a上使用命令ssh genkey生成金鑰對,一直按回車鍵即可 ssh genkey第...
Linux免密碼遠端登入
如何通過一台linux ssh遠端其他linux伺服器時,不要輸入密碼,可以自動登入。提高遠端效率,不用記憶各台伺服器的密碼。1.首先登入一台linux伺服器,此台做為母機 即登入其他linux系統用這台做為入口 執行一行命令生成key檔案 ssh keygen t rsa 然後一直回車,如下所示 ...
Linux遠端免密碼登入
1 生成秘鑰對 ssh keygen t rsa t 指定秘鑰的型別 rsa 秘鑰型別 秘鑰目錄 root ssh 私鑰 id rsa 鑰匙 公鑰 id rsa.pub 鎖 2 編輯認證檔案 遠端主機 mkdir ssh cd ssh vim authorized keys 把公鑰貼上複製 注意 認...