![「Windows 10 上の Bash on Ubuntu」に SSH 接続するにはどうすればいいですか?](https://rvso.com/image/1502912/%E3%80%8CWindows%2010%20%E4%B8%8A%E3%81%AE%20Bash%20on%20Ubuntu%E3%80%8D%E3%81%AB%20SSH%20%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
答え1
動作させることができました。方法は次のとおりです。
ssh-serverをアンインストールし、再インストールして、次のように起動していることを確認しました。
sudo service ssh --full-restart
必ずルート アクセスをオフにし、構成ファイルに別のユーザーを追加してください。
予想通り、127.0.0.1:22 のサブシステムに接続できました。お役に立てれば幸いです。
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo nano /etc/ssh/sshd_config
設定によりルートログインを禁止する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 サーバーでは chroot が必要なので、接続は許可されません。