一般咱們鏈接遠程服務器(linux)windows下經過putty或xshell等工具遠程鏈接。linux下能夠直接經過ssh命令鏈接。其實這二者都是一致的,都是經過ssh協議進行傳輸。html
若是咱們的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鏈接須要。
#因此最好一次性作了,用同樣的密鑰。郵箱換成你本身的郵箱。
連續三次回車,若是不設置密碼的話。
接下來,上傳公鑰到遠程服務器
$ 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這個單詞~
本文轉載地址:https://www.linuxprobe.com/connect-key-cloud.html