上云連載2:學會正確配置自己的服務器

程派微信號:codingpy

本文是「上云連載」系列的第二篇,將主要介紹如何按照自己的喜好配置云服務器,同時確保登陸方便、安全。如有不正確的地方,希望大家指正。

新建云服務器實例

各家云計算服務商對云服務器產品的叫法都不一樣,亞馬遜家的叫 EC2 (Elastic Compute Cloud),之前用的 DigitalOcean 的叫 Droplet,國內的阿里云的叫 ECS (Elastic Compute Service),騰訊云則叫 CVM (Cloud Virtual Machine)。但是本質上是類似的,都是可以按需快速部署的虛擬服務器。

這次網站回遷,我選擇的是騰訊云的 CVM。在開始進行 CVM 配置之前,我們先通過騰訊云的控制臺新建一個實例。

由于之前我們領的代金券只適用于包年包月類型的服務器,所以新建實例時計費模式選擇為「包年包月」。對于需要長期運行的網站應用來說,包年包月的模式還是比較劃算的。機型選擇標準型S1中最低配的即可。

我在 DigitalOcean 時使用的服務器操作系統是 Ubuntu 14.04,但是回遷到騰訊云時我改為了 Debian 系統。二者的差異不大,以前處理 Ubuntu 系統時的操作大多也是適用的。

選擇存儲與網絡時,建議將系統盤選擇為云硬盤,除了可以獲得免費贈送的空間之外,還方便以后根據需求升級 CVM 的 CPU 和內存。其他的使用默認設置即可。

接下來需要設置一些 CVM 相關的信息,如主機名和登陸密碼。一開始,你的賬號下只有默認項目,這里我已經創建了一個叫做「編程派網站」的項目。在騰訊云中,你的所有云資源,包括云服務器、對象存儲甚至是 SSH 密鑰,都可以和項目關聯在一起,方便對應管理。如果你發現采購的云資源在控制臺看不到,可以試試切換所屬的項目。

如果你不希望手動設置密碼,可以選擇「自動生成密碼」,騰訊云會向你的注冊郵箱發送相關登陸信息。安全組暫時選擇為默認安全組,將暴露所有端口到公網和內網。

root 登陸

在登陸剛啟動的 CVM 實例之前,我們需要知道服務器的公網 IP,以及 root 用戶的密碼。如果你選擇的是自動生成密碼,那么請查看郵箱。接下來,我們在本地使用如下命令登陸到服務器。

$ ssh root@qcloud-cvm-ip # 請將 qcloud-cvm-ip 替換為實際 IP

按照提示進行操作,輸入 root 用戶驗證所需的密碼(可以從騰訊云發送的郵件中找到)。如果這是你第一次使用密碼登陸服務器,登陸成功后系統還會提示你更換 root 密碼。

root 用戶

root 用戶是 Linux 環境下的超級管理用戶,擁有非常大的權限。由于 root 用戶權限過大,不建議大家日常使用 root 賬號進行服務器操作。因為有可能會出現讓你加班、甚至被開除的意外。

因此,我們接下來創建一個新的用戶賬號,在日常工作中使用。

創建新用戶

以 root 賬號登陸服務器之后,我們就可以添加以后經常使用的用戶賬號了。本文中,我們將創建一個名為 earlgrey 的新用戶,你可以根據自己的情況選擇合適的用戶名。

$ adduser earlgrey

系統會要求你回答一些問題,最重要的就是設置該用戶的密碼。對于其他問題,并不是必須的,可以直接按回車鍵完成。

添加 root 權限

現在 earlgrey 用戶還只是一名普通用戶,不具備系統管理權限。我們需要為該用戶添加 root 權限。這樣,就可以在每個命令前加上 sudo 以管理員權限執行了。

安裝 sudo

由于 Debian 8 系統默認沒有安裝 sudo 包,因此我們先通過 apt-get 安裝。

首先,更新 apt 包目錄:

$ apt-get update

然后使用下面的命令安裝 sudo

$ apt-get install sudo

現在可以使用 sudovisudo 命令了。

賦予 sudo 權限

為了給新用戶添加管理權限,我們需要把新用戶添加到 sudo 用戶組。Debian 8 系統中,屬于 sudo 用戶組的用戶默認可以使用 sudo 命令。

在 root 用戶下 ,運行如下命令,將 earlgrey 用戶添加到 sudo 用戶組:

$ usermod -a -G sudo earlgrey

上面的命令中,-a 選項指的是將用戶添加到對應的用戶組中,只能配合 -G 選項一起使用。-G 后可以指定多個用戶組名稱。如 $ usermod -a -G sudo, wwww-data

添加公鑰驗證

推薦給新用戶添加公鑰驗證,一來可以避免每次登陸時都要輸入密碼,二來需要私鑰才能登陸可以提高安全性。

生成密鑰對

如果沒有現成的 SSH 密鑰對(由公鑰和私鑰組成),很容易就可以生成。只需要在本地機器上輸入如下命令即可:

ssh-keygen

假如本地用戶的名稱為 earlgrey,接下來應該會看到如下輸出:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/earlgrey/.ssh/id_rsa):

如果你以前沒有生成過密鑰對,按回車接受默認設置即可。如果有舊的密鑰對的話,這樣會覆蓋以前的密鑰對,建議更改為別的文件名。系統還會提示輸入口令(passphrase),為了簡單起見,我們直接回車使用空口令。如果你輸入了口令的話,那么在 SSH 登陸時,除了需要提供密鑰之外,還需要輸入口令才能登陸。

命令運行結束后,會在本地用戶的根目錄中的 .ssh 目錄下創建一個私鑰 id_rsa 和一個公鑰 id_rsa.pub。記得別公開分享你自己的私鑰。

復制公鑰

賦值公鑰有兩種方法,一是通過 sshh-copy-id 腳本自動賦值到遠程用戶,二是手動安裝。

1. ssh-copy-id 腳本

如果本地機器上安裝了 ssh-copy-id 腳本,那么就可以使用該腳本將公鑰安裝到任何有登陸權限的用戶。

運行該腳本,同時指定用戶名和服務器的 IP 地址:

$ ssh-copy-id earlgrey@qcloud-cvm-ip

按提示輸入登陸密碼后,你剛才生成的公鑰就會自動賦值到遠程用戶的 .ssh/authorized_keys 文件中。接下來就可以使用對應的私鑰登陸服務器了。

2. 手動安裝公鑰

使用如下命令打印你剛剛生成的公鑰(id_rsa.pub

$ cat ~/.ssh/id_rsa.pub

打印出來的公鑰大致應該是這樣子的:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf earlgrey@Macbook Pro.local

然后,以新用戶身份登陸服務器:

$ ssh earlgrey@qcloud-cvm-ip

登陸成功后,應該會進入該用戶的根目錄。接下來創建一個叫 .ssh 的新目錄,然后使用如下命令限制目錄權限:

mkdir .ssh
chmod 700 .ssh

700 表示只有目錄的所有者才能讀、寫和執行。

現在使用 Vim 文本編輯器在 .ssh 目錄下創建一個名為 authorized_keys 的文件。

$ vim .ssh/authorized_keys

在 Vim 中按 i 進入插入模式,然后 Ctrl + v 粘貼之前賦值的公鑰。然后按 Esc 回到正常模式,在英文輸入法下鍵入 :wq 保存并退出文件。

并使用如下命令限制文件的權限:

chmod 600 .ssh/authorized_keys

600 表示文件所有者可讀、可寫。

之后,你就可以使用私鑰驗證登陸服務器了,不必重復輸入密碼。

禁用 root 登陸

在開始配置服務器的時候 ,我們提到了最好不用使用 root 賬號登陸服務器。為了確保不會出現這種情況,我們可以修改 SSH daemon 的配置,禁止遠程登陸值 root 賬號。

以上面配置的管理員用戶身份,使用 sudo 命令打開配置文件:

$ sudo vim /etc/ssh/sshd_config

如果想禁止遠程 root 登陸,找到下面這行文本:

PermitRootLogin yes

將其修改為

PermitRootLogin no

并保存文件。由于我們已經創建了一個管理用戶,而且可以視情況增加權限,禁止 root 賬號登陸反而可以讓服務器更加安全。

最后,只需要重啟 SSH 服務即可讓新配置生效。

$ systemctl restart ssh

本地配置 SSH

完成以上配置之后, 以后我們每次只需要 ssh earlgrey@qcloud-cvm-ip 即可登陸服務器。

不過這樣還是有點麻煩,每次都得輸入用戶名和 IP 地址。為了進一步簡化操作,我們對本地的 SSH 登陸進行配置。

打開 ~/.ssh/config 文件,然后添加如下配置:

Host qcloud
Hostname qcloud-cvm-ip
User earlgrey
IdentityFile ~/.ssh/id_rsa

之后,只需要執行 ssh qcloud 即可登陸服務器。

安裝 oh-my-zsh

到上面那步為止,CVM 基本配置完成了。

不過由于在本地用慣了 oh-my-zsh,我決定在服務器上也安裝使用。

我們先登陸服務器:

$ ssh qcloud

然后執行

$ sudo apt-get install git zsh
$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

安裝好之后,建議將服務器上的 oh-my-zsh 主題設置為不同于本地的,否則你可能分辨不出是不是在服務器上的操作。


「上云連載」系列的第二篇就講到這里,大部分是比較基礎的操作,比較適合新手跟著一起操作。下一篇將介紹如何在 CVM 上搭建私有可協作的 Git 服務器。

歡迎轉發至朋友圈。如無特殊注明,本公號所發文章均為原創或編譯,如需轉載,請聯系「編程派」獲得授權。

【近期優秀教程推薦】

使用好鏡像源,把等待的時間轉為生產力

用Python從頭開發一個自己的Shell(上)

不懂排序算法?看這些舞者給你做的演示(下)

一文學會Python多進程編程

一文學會Python多線程編程

掃碼關注編程派

獲取最新教程及資源推送


↓↓↓ 點擊閱讀原文,查看更多Python教程


閱讀原文:http://mp.weixin.qq.com/s?__biz=MzAwNDc0MTUxMw==&mid=2649639618&idx=1&sn=831edf96783839b48e34031176d00b21&chksm=833daa24b44a23329d9aa0ade1dd25b9799fc6e9e062e512492d76d01e674f2d4e0feee33a10#rd
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • 1.Linux安裝前的配置 1.1.關閉防火墻 本站文檔是假定「服務器在防火墻以內」的前提下編纂的,在這個前提下...
    lao男孩閱讀 3,340評論 0 4
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,781評論 18 139
  • Mac上的阿里云配置 一、安全設置 1、通過RSA免密碼登錄 首先,在本機生成RSA公鑰和私鑰。ssh-keyge...
    BoosterChen閱讀 1,624評論 0 1
  • gitosis: 把所有用戶的公鑰保存在 authorized_keys 文件的做法,只能湊和一陣子,當用戶數量達...
    曉蜻蜓閱讀 5,812評論 2 2
  • cookie注入 cookie注入其原理也和平時的注入一樣,只不過說我們是將提交的參數已cookie方式提交了,而...
    許安念安閱讀 351評論 0 1