Ubuntu 遠(yuǎn)程免密碼登錄設(shè)置

我們正常使用 ssh 遠(yuǎn)程登錄服務(wù)器進(jìn)行操作,需要輸入用戶名、服務(wù)器ip以及密碼,當(dāng)我們需要同時(shí)管理多個(gè)服務(wù)器的時(shí)候,每次都需要重復(fù)輸入這些東西會(huì)顯得特別麻煩和浪費(fèi)時(shí)間,因此我們可以通過(guò)配置密鑰來(lái)實(shí)現(xiàn)Ubuntu免密碼登錄。

實(shí)現(xiàn)這一目標(biāo)五部,分別為:

  • 本地客戶端生成密鑰對(duì)
  • 上傳密鑰到服務(wù)器端
  • 服務(wù)器端將密鑰添加到 authorized_keys
  • 本地客戶端配置 ssh,添加服務(wù)器別名
  • 測(cè)試

如果客戶端是使用 MacOS 或者 Linux 系統(tǒng),可以直接在終端使用以下操作即可,如果 Window 系統(tǒng),建議先安裝 Git-Bash,Git-bash 自帶 ssh 工具,在 Git-Bash 下,操作也和 Linux 或者 MacOS 系統(tǒng)一樣。

本地客戶端生成密鑰對(duì)

在生成密鑰對(duì)之前,我們可以先查看一下我們是否已經(jīng)生成過(guò)密鑰對(duì),可以通過(guò)以下命令:

ls -la ~/.ssh

如果輸出有 id_rsaid_rsa.pub,那么就證明之前曾經(jīng)生成過(guò)密鑰對(duì),其中 id_rsa 是私鑰,id_rsa.pub 是公鑰,我們可以直接使用。如果沒(méi)有看到這兩個(gè)文件,那么請(qǐng)回憶是否自己命名的密鑰對(duì),如果沒(méi)有或者已經(jīng)忘記是否曾經(jīng)生成過(guò),那么久可以重新創(chuàng)建一個(gè)。方法如下:

ssh-keygen -t rsa -b 2048

執(zhí)行命令后,會(huì)提示密鑰存儲(chǔ)位置,以及詢問(wèn)是否需要設(shè)置密碼,一般我們可以一路按 Enter 確認(rèn)即可完成密鑰生成。

完成后我們?cè)俅尾榭?~/.ssh 文件夾下是否由我們新創(chuàng)建的密鑰即可。

上傳密鑰的服務(wù)器端

接下來(lái),我們將我們創(chuàng)建好的公鑰上傳到服務(wù)器上,我們將會(huì)使用到 scp 命令。

scp ~/.ssh/id_rsa.pub <YOUR SERVER USERNAME>@<YOUR SERVER IP ADDRESS>:~

這里需要注意的是,我們需要上傳的是公鑰,其文件名為 id_rsa.pub,私鑰是需要我們保密的,這里不要上傳錯(cuò)。

服務(wù)器端將密鑰添加到 authorized_keys

接下來(lái),我們需要登錄我們的服務(wù)器,然后將我們剛上傳的公鑰添加到 authorized_keys中。在添加之前,我們需要先做一下準(zhǔn)備,具體如下:

  • 檢查是否存在 .ssh 文件
    • 如果不存在需要自行創(chuàng)建
      如果是剛安裝的系統(tǒng),以我的 Ubuntu 16.04.4 為例,默認(rèn)的 ssh 是沒(méi)有自動(dòng)創(chuàng)建 .ssh 文件夾的,這需要我們自己創(chuàng)建。不同版本的系統(tǒng)或者以不同途徑安裝的 ssh 可能情況會(huì)有所不一樣,請(qǐng)根據(jù)實(shí)際情況處理。
# 查看是否存來(lái) .ssh 文件夾
ls -la ~
# 如果不存在,創(chuàng)建 .ssh 文件夾
mkdir .ssh
# 將公鑰添加到 authorized_keys 文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys

以上即完成操作,在 Ubuntu 16.04.4 的系統(tǒng)默認(rèn)配置中,以上操作完成即可。然而,在一些不同版本的系統(tǒng)中,可能還需要配置以下 ssh 的配置,具體如下:

  • 備份 /etc/ssh/sshd_config
  • 編輯 /etc/ssh/sshd_config ,將 PubkeyAuthentication no 修改為 PubkeyAuthentication yes

本地客戶端配置 ssh,添加服務(wù)器別名

完成上面的配置后,我們可以嘗試在本地中嘗試使用密鑰登錄看是否成功:

ssh -i ~/.ssh/id_rsa <YOUR SERVER NAME>@<YOUR SERVER IP ADDRESS>

如果配置正確就可以正常免密碼登錄。

為了解決需要管理多臺(tái)服務(wù)器,不希望記住太多不同的用戶名和地址的問(wèn)題,我們還可以為設(shè)置別名登錄,具體操作如下:

  • 在本地 .ssh/ 文件夾下創(chuàng)建 config
  • 向 config 中添加別名信息
# ~/.ssh/config 配置格式
Host  <YourServerAlias>
  HostName  <YourServerIPAddress>
  Port  <YourServerSSHPort>
  User  <YourServerUserName>
  IdentityFile  ~/.ssh/id_rsa

測(cè)試

完成所有配置后,我們可以測(cè)試一下配置是否正確:

ssh <Host Alias>

如果能正常免密碼登錄,說(shuō)明配置成功,我們以后便可以通過(guò)這樣直接輸入服務(wù)器別名的方式快速登錄服務(wù)器了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容