天天看點

SSH如何通過公鑰連接配接雲伺服器

SSH如何通過公鑰連接配接雲伺服器

通常我們連接配接遠端伺服器(linux)windows下通過putty或xshell等工具遠端連接配接。linux下可以直接通過ssh指令連接配接。

其實這兩者都是一緻的,都是通過ssh協定進行傳輸。

如果我們的windows沒有安裝putty等工具,但是有git-bash的話也可以直接通過ssh來連接配接。通過以下指令:

ssh root@ip/主機名/域名/ 

接下來會叫你輸入密碼,成功輸入後即可連接配接成功。

但是這樣每一次都要輸入面碼,我們可以編寫一個shell腳本,類似于:conn_vps.sh這樣的檔案

首先,打開git-bash(桌面上右擊,選擇git bash here。) $ 為gitbash的指令提示符, # 為注釋,非指令不必輸入。下同

$ cd ~ # 進入到使用者家目錄 

$ mkdir sh # 建立一個sh目錄,用于存放shell腳本。 

$ cd sh # 以上都是我的個人習慣。不必和我一樣  

然後建立該檔案

$ vim conn_vps.sh 

進入vim模式,按i鍵即可編輯,輸入以下内容:

#!/bin/bash # 這一行必須要寫,非注釋 

ssh root@ip/主機名/域名 # 輸入你自己的遠端主機ip等。  

此時按,esc鍵,再按:wq儲存退出。

現在即可運作該腳本:

$ ./conn_vps.sh 

$ sh conn_vps.sh # 這兩條指令,任意一條都可以運作  

當然如果你在本身就在linux環境下,需要賦予執行權限,像下面這樣。和我一樣在git-bash中建立的,不需要這一步,本身就有執行權限。

$ chmod 755 conn_vps.sh 

然後再執行,然後你會發現依然會輸入密碼,這是當然的,我們剛才隻不過是把剛才的指令簡單的腳本了一下。

接下來ssh的密鑰分發。

檢視是否有密鑰

$ ll ~/.shh/ # 檢視是否有id.rsa,和id.rsa.pub兩個檔案。 

如果沒有的話,可以生成一個。有的話跳過這一步

$ ssh-keygen -t rsa -c "[email protected]" #這部其實可以不加郵箱參數,但是git配置github連接配接需要。 

#是以最好一次性做了,用一樣的密鑰。郵箱換成你自己的郵箱。

連續三次回車,如果不設定密碼的話。

接下來,上傳公鑰到遠端伺服器

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@遠端伺服器的ip/主機名/域名 

然後運作conn_vps.sh。第一次還是需要輸入一遍密碼,如果出現以下提示符即算成功。

now try logging into the machine, with: "ssh 'root@你的ip'" 

and check to make sure that only the key(s) you wanted were added.  

這樣就算成功了,在運作conn_vps.sh,即可連接配接上你的伺服器。

如何你要多個雲伺服器。root密碼可以弄得複雜些,然後通過這樣的方式連接配接雲伺服器。

yeah!大功告成

嗯,既然我們可以登入上去了,那我們去看看遠端機器上(linux)的情況

輸入ll .ssh/

[root@ten ~]# ll .ssh/ 

total 4 

-rw------- 1 root root 401 sep 10 20:47 authorized_keys  

如果你的遠端機器上沒有生成ssh-keygen,就會隻有一個檔案,authorized_keys翻譯過來就是認證的密鑰。

而這個認證的密鑰就是前面那條指令的的 ~/.ssh/id_rsa.pub 的内容。

是以這條指令 ssh-copy-id -i ~/.ssh/id_rsa.pub root@遠端伺服器的ip/主機名/域名就是把id_rsa.pub的内容粘貼到authorized_keys中。

如果另一台用戶端也想連接配接到這台遠端伺服器。可以用同樣的指令來一遍,也可以直接用cat檢視id_rsa.pub,再在服務端用vim打開authorized_keys檔案。

粘貼進去,之前的不要删除,換一行即可。

當然如果你不想用ssh-copy-id -i指令,那你就得記住authorized_keys這個單詞~

作者:jianddd

來源:51cto