通常我們連接配接遠端伺服器(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