1. 程式人生 > 其它 >SSH免密登入雲伺服器記錄

SSH免密登入雲伺服器記錄

生成SSH金鑰

首先檢查在主機~/.ssh目錄下檢視是否存在id_rsaid_rsa.pub檔案,若沒有則採用下面的方法生成金鑰。(若重灌雲伺服器系統,則檢查在known_hosts檔案中刪除對應ip相關的內容)

使用-t引數建立一個指定金鑰的型別(rsa)並使用-C引數添加註釋:

ssh-keygen -t rsa -C "[email protected]"

輸入後會有如下提示:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 

第一行是提醒我們正在生成一對金鑰;第二行則是讓我們選擇金鑰存放的檔案路徑,通常我們都會選擇使用預設路徑,此時不用輸入任何路徑,直接回車即可;回車後終端給出如下提示:

Enter passphrase (empty for no passphrase): 

它提示我們輸入一串密碼短語,這裡不輸入任何值也不會影響生成結果,直接回車即可;回車後終端給出如下提示:

Enter same passphrase again:

這裡是讓我們再次輸入一遍密碼短語,免得我們在第一次輸入的時候誤操作。如果上一步沒有輸入值,那麼這裡也直接回車即可;回車後終端給出如下提示:

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/k7eBzEwIUHIjh0osGBEkoRMLKKbCV4XzyhHJ3ffsj0 [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|%O   o o+...     |
|O+. .++o oo      |
|=  ..+O.. .o.    |
|o  o.+oo   oo.   |
|o+. +   S   +o   |
|+.     .   ..E   |
|        . .  ..  |
|         + .  .  |
|         .+ ..   |
+----[SHA256]-----+

從提示中我們可以看到金鑰存放的檔案路徑,預設情況下公鑰和私鑰都存放在 ~/.ssh 目錄下。

配置免密登入

將把主機下的id_rsa.pub複製到伺服器下,在伺服器的.ssh/authorized_keys檔案裡。
推薦採用命令方式,手動複製貼上可能會有格式錯誤。

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

回車後輸入雲伺服器的密碼,會有類似如下提示:

~/.ssh » ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]                                                      zhaowenxu@SINO-Mac
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/zhaowenxu/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

此時便可以免密登入雲伺服器檢視(若為第一次登入輸入yes)


若經過上述配置依然需要輸入密碼。則檢查下述內容:

注意一:

  • CentOS預設公鑰登陸關閉狀態需要開啟
  • 修改配置檔案:/etc/ssh/sshd_conf
    命令:
    vim /etc/ssh/sshd_conf
    
  • 找到下面兩行註釋將前面的#去掉並將後面的no改為yes
    RSAAuthentication yes
    PubkeyAuthentication yes
    
  • 重啟sshd服務:
    systemctl restart sshd
    

免使用者名稱和ip登入

雖然我們省去了輸入密碼的步驟,不過使用者名稱和 IP 地址也不短。如果想要省略使用者名稱和 IP 地址,可以通過配置~/.ssh/config實現。預設情況下~/.ssh目錄下是沒有config檔案的。我們可以通過$ vim ~/.ssh/config建立。接著寫入以下配置資訊:

Host Sino
HostName 11.11.11.11
Port 22
User root
IdentityFile ~/.ssh/id_rsa

其中Host代表雲伺服器暱稱、HostName為雲伺服器的公網 IP 地址、Port代表連線時使用的埠號、User代表連線時選用的使用者名稱、IdentityFile代表本地私鑰檔案的路徑。配置完成後退出編輯器,這時候我們就可以用雲伺服器暱稱登入雲伺服器啦,在終端輸入$ ssh Sino即可。