SSH如何通過公鑰連接云服務(wù)器
通常我們連接遠(yuǎn)程服務(wù)器(linux)windows下通過putty或xshell等工具遠(yuǎn)程連接。linux下可以直接通過ssh命令連接。
其實(shí)這兩者都是一致的,都是通過ssh協(xié)議進(jìn)行傳輸。
如果我們的windows沒有安裝putty等工具,但是有g(shù)it-bash的話也可以直接通過ssh來連接。通過以下命令:
- ssh root@ip/主機(jī)名/域名/
接下來會(huì)叫你輸入密碼,成功輸入后即可連接成功。
但是這樣每一次都要輸入面碼,我們可以編寫一個(gè)shell腳本,類似于:conn_vps.sh這樣的文件
首先,打開git-bash(桌面上右擊,選擇Git Bash Here。) $ 為gitbash的命令提示符, # 為注釋,非命令不必輸入。下同
- $ cd ~ # 進(jìn)入到用戶家目錄
- $ mkdir sh # 新建一個(gè)sh目錄,用于存放shell腳本。
- $ cd sh # 以上都是我的個(gè)人習(xí)慣。不必和我一樣
然后新建該文件
- $ vim conn_vps.sh
進(jìn)入vim模式,按i鍵即可編輯,輸入以下內(nèi)容:
- #!/bin/bash # 這一行必須要寫,非注釋
- ssh root@ip/主機(jī)名/域名 # 輸入你自己的遠(yuǎn)程主機(jī)ip等。
此時(shí)按,ESC鍵,再按:wq保存退出。
現(xiàn)在即可運(yùn)行該腳本:
- $ ./conn_vps.sh
- $ sh conn_vps.sh # 這兩條命令,任意一條都可以運(yùn)行
當(dāng)然如果你在本身就在linux環(huán)境下,需要賦予執(zhí)行權(quán)限,像下面這樣。和我一樣在git-bash中創(chuàng)建的,不需要這一步,本身就有執(zhí)行權(quán)限。
- $ chmod 755 conn_vps.sh
然后再執(zhí)行,然后你會(huì)發(fā)現(xiàn)依然會(huì)輸入密碼,這是當(dāng)然的,我們剛才只不過是把剛才的命令簡單的腳本了一下。
接下來SSH的密鑰分發(fā)。
查看是否有密鑰
- $ ll ~/.shh/ # 查看是否有id.rsa,和id.rsa.pub兩個(gè)文件。
如果沒有的話,可以生成一個(gè)。有的話跳過這一步
- $ ssh-keygen -t rsa -C "jan.mail@foxmail.com" #這部其實(shí)可以不加郵箱參數(shù),但是git配置github連接需要。
#所以最好一次性做了,用一樣的密鑰。郵箱換成你自己的郵箱。
連續(xù)三次回車,如果不設(shè)置密碼的話。
接下來,上傳公鑰到遠(yuǎn)程服務(wù)器
- $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@遠(yuǎn)程服務(wù)器的ip/主機(jī)名/域名
然后運(yùn)行conn_vps.sh。第一次還是需要輸入一遍密碼,如果出現(xiàn)以下提示符即算成功。
- Now try logging into the machine, with: "ssh 'root@你的ip'"
- and check to make sure that only the key(s) you wanted were added.
這樣就算成功了,在運(yùn)行conn_vps.sh,即可連接上你的服務(wù)器。
如何你要多個(gè)云服務(wù)器。root密碼可以弄得復(fù)雜些,然后通過這樣的方式連接云服務(wù)器。
yeah!大功告成
嗯,既然我們可以登錄上去了,那我們?nèi)タ纯催h(yuǎn)程機(jī)器上(linux)的情況
輸入ll .ssh/
- [root@ten ~]# ll .ssh/
- total 4
- -rw------- 1 root root 401 Sep 10 20:47 authorized_keys
如果你的遠(yuǎn)程機(jī)器上沒有生成ssh-keygen,就會(huì)只有一個(gè)文件,authorized_keys翻譯過來就是認(rèn)證的密鑰。
而這個(gè)認(rèn)證的密鑰就是前面那條命令的的 ~/.ssh/id_rsa.pub 的內(nèi)容。
所以這條命令 ssh-copy-id -i ~/.ssh/id_rsa.pub root@遠(yuǎn)程服務(wù)器的ip/主機(jī)名/域名就是把id_rsa.pub的內(nèi)容粘貼到authorized_keys中。
如果另一臺(tái)客戶端也想連接到這臺(tái)遠(yuǎn)程服務(wù)器??梢杂猛瑯拥拿顏硪槐椋部梢灾苯佑胏at查看id_rsa.pub,再在服務(wù)端用vim打開authorized_keys文件。
粘貼進(jìn)去,之前的不要?jiǎng)h除,換一行即可。
當(dāng)然如果你不想用ssh-copy-id -i命令,那你就得記住authorized_keys這個(gè)單詞~