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


 通常我們連接遠程服務器(linux)windows下通過putty或xshell等工具遠程連接。linux下可以直接通過ssh命令連接。其實這兩者都是一致的,都是通過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 "jan.mail@foxmail.com" #這部其實可以不加郵箱參數,但是git配置github連接需要。

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

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

connect-key

接下來,上傳公鑰到遠程服務器

$ 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 的內容。

cloud-1

所以這條命令 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這個單詞~

本文轉載地址:https://www.linuxprobe.com/connect-key-cloud.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM