繼續(xù)折騰!給Windows 10內(nèi)置Ubuntu子系統(tǒng)安裝SSH服務(wù)

開始之前

前文:
超詳盡教程!在Windows 10內(nèi)置Ubuntu子系統(tǒng)上搭建私有云
(續(xù)):超詳盡教程!在Windows 10內(nèi)置Ubuntu子系統(tǒng)上搭建私有云,講解了怎樣在Windows 10上開辟WSL子系統(tǒng)并搭建私有云盤,大家反響還不錯,點(diǎn)擊已經(jīng)過千。這一篇繼續(xù)給這個小系統(tǒng)添加功能,今天的主題是:安裝SSH服務(wù),實(shí)現(xiàn)遠(yuǎn)程終端連接。

給Ubuntu安裝SSH服務(wù)

第一步,打開Ubuntu命令行窗口,切換到root用戶,安裝tasksel程序并執(zhí)行:

# apt install tasksel -y
# tasksel

出現(xiàn)下面這個紫色的小窗口:


tasksel運(yùn)行窗口

在列表底部空格鍵選擇OpenSSH server(注意先用空格取消默認(rèn)的幾個選擇),Tab鍵把光標(biāo)切到OK按鈕上,回車,等待自動安裝結(jié)束,重新回到命令行,SSH服務(wù)器就裝好了。
看著很簡單,試著啟動一下就出錯了(囧)。

# /etc/init.d/ssh start
 * Starting OpenBSD Secure Shell server sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

不過這個難不倒人,簡書上就有大神給出了解決方案,這是因?yàn)樾掳娴膐pensshd 中添加了ed25519 做簽名驗(yàn)證,而之前系統(tǒng)里沒這個算法的證書。生成一下再次啟動,這次就OK了。

# ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
# /etc/init.d/ssh start
 * Starting OpenBSD Secure Shell server sshd                  [ OK ]

Windows 10安裝PuTTy客戶端工具

PuTTy 是最有名的 SSH 和 telnet 客戶端,最初由 Simon Tatham 為 Windows 平臺開發(fā)。非常易于安裝和使用,通常大部分的配置選項(xiàng)你都不需要修改。只需要輸入少量基本的參數(shù),就可以開始很簡單地建立連接會話。
另找一臺局域網(wǎng)內(nèi)的電腦(下稱電腦B),作為客戶端遠(yuǎn)程連接裝有Ubuntu的電腦(下稱電腦A),在電腦B上點(diǎn)此下載 PuTTy最新版(0.71)。根據(jù)你的操作系統(tǒng)選擇64位或32位版本安裝即可,我選64位版本。安裝之后,電腦B的開始菜單里多了這么幾個東東:

PuTTy

點(diǎn)擊Putty圖標(biāo),打開PuTTy Configuration窗口,在Hostname里輸入電腦A的IP地址,點(diǎn)擊Open按鈕進(jìn)行試連接:
PuTTy登陸窗口

結(jié)果被踢回來了:
端口被拒絕

這才想起電腦A的22端口沒打開,當(dāng)然拒絕訪問了。在(續(xù)):超詳盡教程!在Windows 10內(nèi)置Ubuntu子系統(tǒng)上搭建私有云一文中,我詳細(xì)寫了Windows 10的端口開放方法,只不過上次是開放8080端口,這次是22端口,方法完全一樣,這里不再詳述,只需進(jìn)入電腦A的控制面板->系統(tǒng)和安全->Windows Defender防火墻->高級設(shè)置,點(diǎn)擊“入站規(guī)則->新建規(guī)則”,開放22端口,重啟電腦A。
再次從電腦B用PuTTy連接電腦A,這次還是被踢回來,只不過錯誤原因變了:
pubulickey有問題

配置SSH連接秘鑰

Linux就是這樣,軟件安裝沒什么難度,但配置起來頭疼事一堆。對我這樣的小白非常不友好。之所以出現(xiàn)publickey錯誤,是因?yàn)樾掳娴腟SH-2默認(rèn)使用秘鑰認(rèn)證登陸,也就是說,需要鑰匙才行,密碼已經(jīng)落后了。
回到電腦A的Ubuntu命令行窗口,用vi打開SSH服務(wù)的配置文件:

# vi /etc/ssh/sshd_config

里面有這么一句:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

意思是,缺省設(shè)置禁止明文密碼登陸。將這句改成:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes

保存文件,重啟ssh服務(wù):

# /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd                   [ OK ]

再次用PuTTy連接,這次成功了:

login as: niuyoucai
niuyoucai@localhost's password:
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.4.0-17134-Microsoft x86_64)
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
1 package can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

不過,明文密碼太low了吧,怎么也得試試秘鑰登陸是不是?再次編輯ssh配置文件,做下面幾個改動:

# vi /etc/ssh/sshd_config
PasswordAuthentication yes -> PasswordAuthentication no
#PubkeyAuthentication yes -> PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 -> AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

保存退出,用ssh-keygen生成rsa秘鑰,并設(shè)置passphrase也就是秘鑰的密碼,成功后出現(xiàn)下面信息:

#  ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:LfobOqio9U0yxq/Y8z9BBAh7XuiUD6VyveTGlOc4Ggs root@MATEBOOK-D
The key's randomart image is:
+---[RSA 2048]----+
|  .. .o.         |
|   ..* ..        |
|  o O *..        |
|   B O =..       |
|  E + O.S .      |
|   o = o..       |
|  . B.o ..       |
| o =o*.o..       |
|+ o.++=o+o       |
+----[SHA256]-----+

這樣就生成了一個/root/.ssh目錄,下面有兩個秘鑰文件:

#ls ~/.ssh
id_rsa  id_rsa.pub

id_rsa是私鑰,id_rsa.pub是公鑰,這倆總是成對出現(xiàn)。照我的粗淺理解,公鑰和私鑰就像鑰匙和鎖的關(guān)系,公鑰是鎖,私鑰則是鑰匙。下面把私鑰文件拷貝到Windows目錄里:

# cp ~/.ssh/id_rsa /mnt/c/temp/

重啟ssh服務(wù):

# /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd                   [ OK ]

然后去電腦A的C:\temp目錄里找到這個文件,拷貝到電腦B(客戶端)的任意目錄里備用。

回到電腦B,打開PuTTYgen,點(diǎn)擊Load,選擇剛剛拷貝過來的id_rsa文件,提示輸入passphrase,也就是剛才生成秘鑰時設(shè)定的秘鑰的密碼:


Load私鑰

成功之后是這樣:


Save private key

點(diǎn)擊Save private key按鈕,保存一個id_rsa.ppk文件,名字可以任取,但擴(kuò)展必須是ppk,這個操作的目的,是將ssh server生成的私鑰加工成PuTTy自己的私鑰格式文件,如果原封不動地用服務(wù)器生成那個,死活登陸不上去,我在這里卡殼兒了很久,差點(diǎn)放棄。這個文件就是今后客戶端免密登陸ssh服務(wù)器的鑰匙了,一定要保存好,隨身攜帶吧。

再次回到電腦A,在Ubuntu命令行窗口做最后的ssh服務(wù)器配置:

# cd ~/.ssh
# cp id_rsa.pub authorized_keys
# chmod 600 authorized_keys
# /etc/init.d/ssh restart

這樣做的目的是將公鑰文件內(nèi)容放到authorized_keys文件里,因?yàn)樗借€驗(yàn)證只認(rèn)這個名字的公鑰文件,最后重啟ssh服務(wù)。

回到客戶端電腦B,打開PuTTy,進(jìn)行連接,先輸入電腦A的IP:


輸入IP

再點(diǎn)擊Data設(shè)置默認(rèn)登陸用戶:


默認(rèn)用戶

然后點(diǎn)擊SSH->Auth,點(diǎn)擊Browse選擇剛才用PuTTy生成的id_rsa.ppk私鑰文件:
選擇PuTTy私鑰

最后別忘了回到Session,給這一套配置起個名字,點(diǎn)擊Save保存一下,我保存成wsl,以后登陸直接雙擊wsl即可。


保存配置

然后點(diǎn)擊Open,終端窗口出現(xiàn)了,敲入Passphrase(秘鑰的密碼)之后,成功以root用戶身份遠(yuǎn)程登陸Ubuntu!
登陸成功!

看到那個綠色的小光標(biāo),有種相當(dāng)開心的感覺。

后記

至此,我的Ubuntu子系統(tǒng)增加了遠(yuǎn)程客戶端登陸功能。用秘鑰方式訪問SSH非常安全,即使別人知道你的root密碼,沒有鑰匙,也無法登陸你的linux,這就是SSH-2拋棄密碼登陸方式的原因。如果想從外網(wǎng)登陸電腦A的Ubuntu,只需要在路由器設(shè)置一個22端口的映射即可,詳細(xì)方法在(續(xù)):超詳盡教程!在Windows 10內(nèi)置Ubuntu子系統(tǒng)上搭建私有云一文中有講解,不再贅述。這樣你在外面的時候,可以通過路由器的Wan IP登陸電腦A上的這個小小linux系統(tǒng),是不是很酷呢?天氣越來越熱了,我也開啟宅男模式,躲在家里各種折騰,越研究越有意思,生活在于折騰,文章寫的辛苦,望各位多多點(diǎn)贊,謝了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內(nèi)容