WSL優化之SSH遠端登入篇

2022-02-21 02:37:35 字數 1542 閱讀 2866

sudo apt remove openssh-server

sudo apt install openssh-server

先解釋一下wsl的網路,作為子系統的ubuntu linux和windows主系統的ip是一樣的。如果在linux上搭建了nginx伺服器,那麼在windows上的瀏覽器上輸入localhost是可以訪問nginx服務的。如果在linux上執行netstat -nlp是不會看到任何埠服務的。在linux上啟用埠服務的時候,windows系統會彈出視窗,詢問是否允許相關埠訪問。

wsl上的ubuntu預設安裝了openssh-server,也就是ssh服務的軟體。但是,這個軟體的配置是不完整的,如果啟用服務,會報缺失幾個金鑰檔案。為了解決這個問題,我們需要重新安裝openssh-server:

重新安裝完還不行,因為wsl上的ubuntu的ssh服務配置預設不允許密碼方式登入,我們需要改配置:

sudo vim /etc/ssh/sshd_config
將以下配置複製到sshd_config配置檔案

port 2222   #設定ssh的埠號, 由於22在windows中有別的用處, 盡量不修改系統的埠號

permitrootlogin yes # 可以root遠端登入

passwordauthentication yes # 允許密碼驗證登入

allowusers sky # 遠端登入時的使用者名稱

sudo service ssh --full-restart
此時,我們可以在ubuntu的bash下連線自己測試,也可以用windows的powershell連線ubuntu來測試,命令都是一樣的

ssh username@localhost:2222 	# username為安裝wsl ubuntu時輸入的使用者名稱
如果要在其它機器上訪問,需要查詢本機ip,把localhost換成ip,那麼同一子網(wifi、路由器)下的機器也可訪問ubuntu裡的服務。

如果在其他機器上連線不成功看是不是win10本地防火牆的2222埠沒有放行,放行埠方法

防火牆->高階設定->入站規則->新建規則

埠->下一步

選擇tcp 特定本地埠 2222

允許連線, 預設都選上, 下一步填個名字 完成

不出意外,就應該能連線成功了

順便提一下,如果是搭建nginx服務就比ssh簡單多了,執行下面命令安裝後在瀏覽器訪問localhost即可:

sudo apt install nginx

sudo service nginx start

SSH之遠端登入

1.本次使用兩個虛擬機器s1和s2進行演示 2.在s1和s2兩個終端分別輸入sudo apt get install ssh安裝ssh服務 3.使用s1來遠端連線s2 在s2的終端輸入ifconfig獲取s2的ip為192.168.255.255 4.然後在s的終端中輸入ssh p 22 s2的使用...

遠端登入 ssh

ssh服務 22埠,密文傳輸。功能 可以幫助我們管理遠端伺服器,或對遠端檔案進行傳輸。服務 sshd 軟體 openssh server 3.9p1 8.rhel4.1 配置 etc ssh sshd config 啟動ssh service sshd start stop status resta...

ssh遠端登入

ssh username 網域名稱或ip ssh i 證書檔案 username 網域名稱或ip scp username 網域名稱或ip 遠端檔案 本地目錄 scp 本地檔案 username 網域名稱或ip 遠端目錄 scp r username 網域名稱或ip 遠端目錄 本地目錄 scp r ...