登陸服務器老是輸入密碼,瞭解一下免密登陸吧

Linux 免密登陸

咱們登陸服務器,無論你是經過ssh,仍是經過工具登陸,老是須要輸入用戶名和密碼,頻繁操做太浪費時間了,這個時候就要了解一下免密登陸了。java

下面主要給你們介紹一下免密登陸的步驟,跟着操做基本就能夠配置成功了,後續就能夠直接登陸服務器,不須要輸入密碼了。node

1. 生成祕鑰對

首先咱們須要在本身的本機上生成祕鑰對,在任何一個文件夾中均可以,可是最好在本身 home 目錄下中的 .ssh 文件夾中進行,這樣就能夠省掉後續將生成祕鑰對移動到這個文件夾的操做。linux

在 mac 上能夠經過 cd ~/.ssh 進入該文件夾,window 的用戶自行搜索吧。bash

進入文件夾以後,經過一下命令生成祕鑰對:服務器

ssh-keygen -t rsa -C "你本身的名字" -f "你本身的名字_rsa"
複製代碼

生成以後,你會發現多了兩個文件,一個是你本身的名字_rsa,一個是你本身的名字_rsa.pub,帶 pub 的是公鑰,後續須要放到服務器上,不帶 pub 的是祕鑰,須要放到 home/.ssh下,若是上面你已經進入到這個文件夾中,那咱們不須要移動就能夠了,能夠直接跳過第二步,進行第三步的操做。若是沒進入這個文件夾,那咱們就接着往下操做配置本地祕鑰。ssh

2. 配置本地祕鑰

若是第一步中你是進入本機 home 目錄下的 .ssh/ 文件夾執行的,那能夠直接跨過這一步,若是不是,須要按照說明執行這一步。工具

把第一步生成的祕鑰複製到你的 home 目錄下的.ssh/ 路徑下。能夠經過 mv XX_rsa ~/.ssh 命令,將生成的 XX_rsa 文件進行移動。spa

若是遇到問題,仍是同樣,可能權限不夠,須要將你的祕鑰文件訪問權限設置爲 600。命令行

chmod 600 你的祕鑰文件名
複製代碼

3. 上傳配置公鑰

生成祕鑰對以後,咱們須要將公鑰上傳到服務器對應帳號的 home 路徑下的.ssh/中,經過如下命令便可。code

ssh-copy-id -i "公鑰文件名" 用戶名@服務器ip或域名
複製代碼

輸入完成以後須要輸入服務器密碼

上傳完成以後,登陸指定的服務器,進入到指定用戶名下的 .ssh 文件夾以後,你會發現,其中有兩個文件:

經過 cat authorized_keys,會發現 authorized_keys 中已經存在你的公鑰了。

若是在中途遇到問題的話,咱們能夠登陸服務器,將配置公鑰文件 authorized_keys 訪問權限設置爲 600,而後再執行上面將公鑰上傳服務器的指令就能夠了。

經過如下命令能夠修改權限:

chmod 600 authorized_keys
複製代碼

4. 配置本地免密配置文件

祕鑰對配置好以後,咱們須要修改本地的免密配置文件。

編輯本身 home 目錄下的 .ssh/ 路徑下的 config 文件,首先須要將 config 文件的訪問權限設置爲 644。

其次經過 vi 對配置文件進行操做。配置文件中能夠配置多主機配置和單主機配置。多主機配置就是能夠經過一個祕鑰訪問多個 linux 服務器,單主機的意思就不言而喻了,一個祕鑰訪問一個 linux 服務器。

配置方式以下:

# 多主機配置
# 免密配置完成以後經過host機型登陸,ssh 具體的Host
Host java-produce
# 須要綁定到那個ip的linux服務器下
HostName IP或綁定的域名
# 端口號
Port 22
# 下面是另一個主機的配置
Host node-produce
HostName IP或綁定的域名
Port 22

# 上面主機的配置中凡是Host以-produce結尾的,都走下面的祕鑰
Host *-produce
# 登陸的用戶
User root
# 具體哪一個祕鑰文件,你本機的
IdentityFile ~/.ssh/produce_key_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO

# 單主機配置,具體某個字段什麼意思和上面多主機同樣
# 只不過不須要將主機和祕鑰的配置分開,一塊兒配置就行
Host evil-cloud
User root
HostName IP或綁定的域名
IdentityFile ~/.ssh/produce_key_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO
複製代碼

配置完 config 文件以後,試一下在命令行輸入

ssh 配置的Host名稱 # 好比上面我配置的 java-produce
複製代碼

就能夠直接訪問具體的服務器了,不須要輸入密碼的哦。

閱讀完後兩部曲

  1. 喜歡的小夥伴點個贊吧,感受對身邊人有幫助的,麻煩動動手指,分享一下。很是感謝各位花時間閱讀完,同時很感謝各位的點贊和分享。
  2. 但願各位關注一下個人公衆號吧,新的文章第一時間發到公衆號,公衆號主要發一些我的隨筆、讀書筆記、還有一些技術熱點和實時熱點,而且還有很是吸引人的我我的自費抽獎活動哦~

相關文章
相關標籤/搜索