Win10中安裝Ubuntu子系統后默認是沒有開啟SSH服務的,需要手動配置開啟,
1。先通過 bash 進入子系統修改配置
vi /etc/ssh/sshd_config 備注 輸入i 表示鍵入, 按鍵(ESC)外加 冒號(:WQ) 退出保存
如果文件不存在說明尚未安裝,則執行安裝
apt-get install openssh-server
2.繼續修改配置,下面以密碼登錄的配置作說明:
Port = 22 # 默認是22端口,如果和windows端口沖突或你想換成其他的否則不用動
#ListenAddress 0.0.0.0 # 如果需要指定監聽的IP則去除最左側的井號,並配置對應IP,默認即監聽PC所有IP
PermitRootLogin no # 如果你需要用 root 直接登錄系統則此處改為 yes
PasswordAuthentication no # 將 no 改為 yes 表示使用帳號密碼方式登錄
如果PasswordAuthentication 為false, 上面的密碼框不可用, 所以建議為true,如果PermitRootLogin 為false,那么用root 用戶會提示拒絕密碼,
主要配置以上幾項即可
3.然后啟動 ssh 服務
service ssh start
如果提示 sshd error: could not load host key 則需要重新生成 key
dpkg-reconfigure openssh-server
4.查看服務狀態
service ssh status
# * sshd is running 顯示此內容則表示啟動正常
5.passwd root # 設置下密碼
不要忘了,還要配置防火牆開啟端口才能被其他PC訪問
打開 Win10 防火牆設置,(可以通過右下角有個向上的箭頭點擊盾牌快速進入面板)Windows Defender 安全中心,點擊下方的高級設置,
最后效果如圖:
2.關於開機啟動我這里參考的是,我的Ubuntu 是18以上
https://www.cnblogs.com/vaynewang/p/10169134.html
https://blog.csdn.net/toopoo/article/details/85733566
所以需要鏈接 rc-local.service 文件 然后創建 rc.local 文件並修改權限,大概是這樣的:
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service touch /etc/rc.local chmod 755 /etc/rc.local
然后編輯rc.local 大概格式是這樣的:
#!/bin/bash
service start ....
exit 0
注意 如果你的vbs文件 無法保存到 啟動文件下(win10 會提示什么權限), 那么可以把vbs文件放到其他地方, 創建快捷方式,然后把快捷方式 放到 啟動文件夾下
然而,WSL中並不支持通過rc.local 來實現開機啟動。在這有個偏方,可以通過windows 的啟動項來啟動 rc.local中的腳本。
win+r shell:startup <- 進入啟動目錄
創建一個VBScript腳本wls_rclocal.vbs
寫入內容 , 通過bash命令參數去執行rc.local
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /etc/rc.local'",0
注意 如果你的vbs文件 無法保存到 啟動文件下(win10 會提示什么權限), 那么可以把vbs文件放到其他地方, 創建快捷方式,然后把快捷方式 放到 啟動文件夾下
參考 文檔:
https://blog.csdn.net/zhouzme/article/details/81087837
https://blog.csdn.net/u012206617/article/details/83026777
https://gist.github.com/dentechy/de2be62b55cfd234681921d5a8b6be11