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 ...