SSH如何經過公鑰鏈接雲服務器

 一般咱們鏈接遠程服務器(linux)windows下經過putty或xshell等工具遠程鏈接。linux下能夠直接經過ssh命令鏈接。其實這二者都是一致的,都是經過ssh協議進行傳輸。html

SSH如何經過公鑰鏈接雲服務器

若是咱們的windows沒有安裝putty等工具,可是有git-bash的話也能夠直接經過ssh來鏈接。經過如下命令:linux

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

接下來會叫你輸入密碼,成功輸入後便可鏈接成功。可是這樣每一次都要輸入面碼,咱們能夠編寫一個shell腳本,相似於:conn_vps.sh這樣的文件git

首先,打開git-bash(桌面上右擊,選擇Git Bash Here。) $ 爲gitbash的命令提示符, # 爲註釋,非命令沒必要輸入。下同github

$ cd ~ # 進入到用戶家目錄
$ mkdir sh # 新建一個sh目錄,用於存放shell腳本。
$ cd sh # 以上都是個人我的習慣。沒必要和我同樣

而後新建該文件shell

$ vim conn_vps.sh

進入vim模式,按i鍵便可編輯,輸入如下內容:vim

#!/bin/bash # 這一行必需要寫,非註釋
ssh root@ip/主機名/域名 # 輸入你本身的遠程主機ip等

此時按,ESC鍵,再按:wq保存退出。windows

如今便可運行該腳本:bash

$ ./conn_vps.sh
$ sh conn_vps.sh # 這兩條命令,任意一條均可以運行

固然若是你在自己就在linux環境下,須要賦予執行權限,像下面這樣。和我同樣在git-bash中建立的,不須要這一步,自己就有執行權限。服務器

$ chmod 755 conn_vps.sh

而後再執行,而後你會發現依然會輸入密碼,這是固然的,咱們剛纔只不過是把剛纔的命令簡單的腳本了一下。ssh

接下來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

相關文章
相關標籤/搜索