本文由 簡悅 SimpRead 轉碼, 原文地址 https://zhuanlan.zhihu.com/p/40983101shell
很久沒更專欄了,都快荒廢了,這段時間發生了不少事,往事不提,開始更正文:vim
衆所周知,GCP 的中國臺灣節點對大陸十分友好,但小白在新建、配置實例的時候會碰到不少困難,我在第一次使用的時候,也遭遇很多坑,有許多設定是極其反人類的。瀏覽器
下面分享一些經驗,給後面的同窗作參考。安全
閱讀本文的前提:服務器
2. 可以正常訪問 http://google.com 域名的愛國工具;網絡
3. 已註冊 GCP;ssh
4. 已綁定信用卡並得到新註冊用戶 300 美金的贈送餘額。工具
登錄 GCP 平臺的控制面板:網站
https://console.cloud.google.comconsole.cloud.google.comui
打開側邊欄,找到「Compute Engine」,在彈出的二級列表中,單擊「VM 實例」:
GCP 平臺的實例,都是依附於對應的項目下的,因此你須要先新建一個項目,項目名 ID 保持默認,項目名稱可按照本身的喜愛自定,單擊「建立」便可:
首次建立項目,須要一段時間,請耐心等待:
繼續等,若是時間過長,請刷新瀏覽器。
當「建立」按鈕由灰藍變藍,就能夠建立實例了:
挨個講一下建立實例時的選項:
1. 名稱自定,使用默認的也行。
2. 區域選擇「asia-east1(中國臺灣)」,地區都是中國臺灣彰化縣,有 a、b、c 可選,我選的是 c,聽說網絡質量更好一些。
3. 機器類型選擇「微型」,租用機器自己按時付費,月計 5\(,流量費 0.23\)/GB,不包含在機器價格內,額外計算,也是用多少算多少,挺金貴的。
4. 「容器」功能至關於連接一個遠程鏡像,當作系統安裝盤,用 GCP 自帶的鏡像就行了,都是最新版的系統,不用選。
5. 點擊「啓動磁盤」的「更改」按鈕,能夠在 GCP 自帶的系統安裝鏡像裏選一個,我習慣用 Debian 系 Linux,選擇 Debian 9 或是 Ubuntu 16.04 都是能夠的。默認磁盤容量 10GB,富強上網足夠,選擇更大容量的磁盤需額外計費。
6. 「身份和默認 API 權限」及關聯選項保持默認
7. 「防火牆」選項下的 http 和 https 必須開啓,不然你將沒法經過這兩個協議訪問到機器,好比在 GCP 實例上建設網站,訪客沒法訪問
8. 不用單獨展開「管理、安全、磁盤、網絡、單獨租用」作額外設置,點擊「建立」便可新建實例:
新建立的實例以下:
下面咱們能夠在瀏覽器裏遠程鏈接服務器,在命令行裏直接設置 root 用戶密碼,使用 root 用戶登陸等。
在「鏈接」功能的下拉菜單裏,點擊「在瀏覽器窗口中打開」:
稍後出現命令行操做界面:
輸入:
sudo passwd root
爲 root 用戶設置密碼。
建議在在線隨機密碼生成器 生成一個包含大小寫字母、特殊符號、數字的 30 位以上隨機密碼,將密碼複製下來粘貼(Ctrl+C)到命令行中,按回車,再輸入一次密碼,按回車,使密碼生效:
使當前用戶具有 root 權限:
su root
再次輸入密碼,受權成功:
編輯 ssh 服務配置文件:
vim /etc/ssh/sshd_config
找到這一行:
PermitRootLogin prohibit-password
將「prohibit-password」改爲「yes」,使容許 root 用戶登陸:
而且將「PasswordAuthentication」從默認的「no」改爲「yes」:
最後是這樣的:
順便把 ssh 端口號(Port)改爲高端口(範圍 10000~65535),避免密碼在默認端口被暴力破解:
按 Esc,輸入:
:wq
確認保存並退出。
從新啓動 ssh 服務,使更改生效:
/etc/init.d/ssh restart
特別地,GCP 配置了本身的防火牆(相似阿里雲的安全組規則),默認只容許 2二、80、44三、3306 等經常使用端口傳入,這就意味着若是咱們設置了高端口用本地 ssh 工具鏈接,以及使用帶有動態端口切換功能的敬業代理時,防火牆規則會形成許多麻煩,因此咱們要把全部端口的訪問都打開。
設置非 22 端口用 GCP 自帶工具作 ssh 鏈接,若是未在防火牆裏容許放行對應的端口,即便指定對應端口作登錄也會登陸失敗(瘋起來我寄幾都咬)。
返回實例管理列表,點擊最右邊的豎排省略號,在展開的列表點擊「查看網絡詳情」:
鼠標移到左側列表並展開:
點擊「防火牆規則」:
默認處於「入站」選項卡,點擊「建立防火牆規則」:
設置好防火牆規則名稱後,「流量方向」選擇「入站」:
「對匹配項執行的操做」保持默認「容許」。
「目標」選擇「網絡中的全部實例」,「來源 IP 地址範圍」輸入「0.0.0.0/0」(容許全部 IP)。
「次要來源過濾條件」保持默認「無」,「協議和端口」選擇「所有容許」,最後點擊「建立」:
等待建立完成:
一樣給出站規則設置放行全部 IP、協議和端口,由於法治上網的代理須要容許主機去訪問目標網站,把得到的流量轉發給客戶端,方法如法炮製,直接上圖:
特別地,「來源過濾條件」除了能夠設置容許所有內網機器訪問外網,你還能夠指定「子網」規則之一,如勾選「10.140.0.0/20」(亞洲東部 1 區,即中國臺灣機房),不一樣地域的實例處於不一樣的子網,從邏輯上,它們從屬於同一 GCP 帳戶下的同一項目中,彼此之間構成了一個局域網。
在這裏「全選」也是能夠的
不一樣地域的機房擁有不一樣的子網 IP 地址
GCP 管理面板首頁可直接查看當前實例所在子網的 IP 地址
建立:
至此,全部的設置就完成了。憑服務器 IP、端口、root 用戶名、root 用戶密碼,就能夠在 XShell 裏鏈接到機器了。
3.1
在建立實例時,偶爾會發現「啓動磁盤」項沒有「更改」按鈕,也沒有標註系統名稱,這意味着實例建立後是沒有系統的,更無從遠程鏈接,使用後續功能。碰到這種狀況,請返回 VM 實例控制面板首頁,先將當前磁盤徹底爲空的機器刪除:
接着,將左側列表展開,點擊「映像」:
在列表中點擊須要安裝的系統:
點擊「建立實例」:
注意事項和第一章「建立實例」的要求相同:
3.2
因爲安全方面的考慮,你仍然能夠選擇自定義用戶名,並用對應的密鑰登陸,你能夠先在 Xshell 中生成一個新的密鑰文件:
工具(T)→新建用戶密鑰生成嚮導(W):
選項默認,下一步:
繼續:
密鑰名稱自定,設置什麼樣的密鑰名稱,就意味着你以什麼樣的用戶名登陸系統(不可設置爲 root),用戶密鑰加密密碼屬於可選項,可不填,意思就是在這個密鑰的外殼又添加一個密碼,使用密鑰的時候須要輸入密碼:
是(Y):
「用戶密鑰」裏,可看到咱們剛纔建立的,名稱叫「exp」的密鑰:
接着,選中要導入到 GCP 鑰匙串的密鑰,點擊右邊的「屬性(P)」,並切換到「公鑰」選項卡:
接着,將公鑰裏的內容(以 ssh-rsa 開頭的),將到末尾兩個等於號(=)處的內容,複製出來:
而後,登錄 GCP 的控制面板,點擊側邊欄的「元數據」:
點擊第二個選項卡——「SSH 密鑰」:
修改:
添加一項:
把剛纔複製來的公鑰粘貼進來,此時會提示密鑰格式無效:
不要着急,在密鑰末尾的兩個等於號以後,打一個空格,再輸入任意字母 + 英文數字,ssh 密鑰就建立成功了,同時空格後面輸入的內容,就是你登陸 GCP 實例的用戶名:
保存生效:
而後,在 Xshell 裏創建新鏈接:
名稱(N)自定,主機(H)填 IP,端口號(O)默認 22,若是在 sshd 文件裏更改了,請自行用新的端口號:
點擊側邊欄的「用戶身份驗證」,方法(M)選擇「PublicKey」,用戶名填你剛纔在 GCP 後面板→元數據→ssh 密鑰裏,在「== 」後面設置過的用戶名。
「用戶密鑰」選擇你剛纔用 Xshell 密鑰生成工具生成的那個,點擊下方「肯定」保存。
快捷鍵「Alt+O」快速啓動鏈接,選中剛纔設置好的那臺機器,點擊鏈接(C),就能夠成功連上 GCP 實例了,用戶名就是咱們剛纔設置的「exp」:
寫下你的評論...
還有哪些靠譜加密方式?
密鑰 + 任意高端口登陸就很安全啦,比密碼登陸安全,注意密鑰文件不要隨便暴露給別人
不讚,可是分享到朋友圈。
您的轉發是支持個人動力
很是詳細,感謝
還有哪些靠譜加密方式?
密鑰 + 任意高端口登陸就很安全啦,比密碼登陸安全,注意密鑰文件不要隨便暴露給別人
抱歉我沒說清楚,我說的不是 ssh 登陸,我是說***酸酸乳的靠譜加密方式。貌似 aes 加密已經 GG 了。。。
唉,太貴了,最便宜的都要 4.28 刀,還不包括流量費用。流量費用 0.23 刀一個 G。用不起用不起。快到期了,正發愁之後用什麼呢。
第一年有送 300 刀給你免費用的呀,刨掉最低配機器錢,分攤每月摺合流量也有 80G 左右可用,你一我的愛國上網用確定夠,先佔一年便宜再說唄
已經用了 11 個月了,還剩 1 個月到期。不過找到了 AWS 了,又能蹭一年了
圖文很是詳細,太讚了,居然仍是個妹紙~
嘗試了一下感受延遲仍是比較嚴重... 可是好像也沒有很好的解決方法 orz
協議和端口所有容許。。。看得我很慌
手機黨操做: wc 那步後如何保存呢,我只有本身關了,而後重啓 SSH 顯示失敗
就是重啓 SSH 使更改生效顯示失敗,另外 SSR 手機端已經能夠上網,可是個人谷歌軟件都沒法升級,沒有速度,不知道怎麼破
想知道這東西理論上會不會被 q 掉,好比直接禁止訪問臺灣的 GCP 服務器