![如何透過 SSH 存取「Windows 10 上的 Ubuntu 上的 Bash」?](https://rvso.com/image/1502912/%E5%A6%82%E4%BD%95%E9%80%8F%E9%81%8E%20SSH%20%E5%AD%98%E5%8F%96%E3%80%8CWindows%2010%20%E4%B8%8A%E7%9A%84%20Ubuntu%20%E4%B8%8A%E7%9A%84%20Bash%E3%80%8D%EF%BC%9F.png)
答案1
我讓它工作了;就是這樣。
卸載 ssh-server,重新安裝它並確保它已啟動
sudo service ssh --full-restart
確保您關閉了 root 存取權並在設定檔中新增了另一個使用者。
我能夠按預期連接到 127.0.0.1:22 上的子系統。我希望這能幫到您。
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo nano /etc/ssh/sshd_config
並透過設定禁止 root 登入PermitRootLogin no
然後在其下方添加一行內容:
AllowUsers yourusername
如果您想使用密碼登錄,請確保
PasswordAuthentication
設定為。yes
透過新增/修改停用權限分離:
UsePrivilegeSeparation no
sudo service ssh --full-restart
使用 PuTTY 等 ssh 用戶端從 Windows 連線到 Linux 子系統。
答案2
上面的答案很接近,但我仍然有一個Connection closed by 127.0.0.1
問題。
因此,從頭開始並--purge
在刪除sshd
軟體包時提供選項(如下所示),解決了我對這個問題的變體:
user$ sudo apt-get remove --purge openssh-server # First remove sshd with --purge option.
user$ sudo apt-get install openssh-server
user$ sudo vi /etc/ssh/sshd_config # **See note below.
user$ sudo service ssh --full-restart
# ** Change Port from 22 to 2222. (Just in case MS-Windows is using port 22).
# Alternatively, you can disable MS-Windows' native SSH service if you
# wish to use port 22.
答案3
由於 Windows 實作不提供 chroot,因此您需要修改 /etc/ssh/sshd_config
UsePrivilegeSeparation no
此外,您還需要使用 useradd 命令等建立使用者。
答案4
伺服器的日誌記錄中顯示了您無法 ssh 存取它的原因:
chroot("/var/run/sshd"): 功能未實作 [preauth]
Linux 子系統似乎沒有實作 chroot,而 ssh 伺服器需要它,因此不允許連線。