web-dev-qa-db-ja.com

「Windows 10上のUbuntuでBash」にSSH接続するにはどうすればよいですか?

私は "Windows上のUbuntu上のBash"がインストールされ動作しているWindows 10 Anniversary Editionを持っています。このUbuntuインスタンスにSSH接続できるようにしたいのですが、openssh-serverをインストールして設定し(そしてポート2200でlistenしています)、 "localhost:2200"にSSHで接続しようとすると、 "Server"と表示されます。ネットワーク接続を閉じました "#:。

誰もがうまくこれを達成することができましたか?

enter image description here

98
Mick

動作するようになりました。これはどうですか。

Ssh-serverをアンインストールし、再インストールしてから起動したことを確認しました。

Sudo service ssh --full-restart

Rootアクセスを無効にして、設定ファイルに別のユーザーを追加したことを確認してください。

期待どおり127.0.0.1:22にサブシステムに接続できました。これがお役に立てば幸いです。

Here's a screenshot.

  1. Sudo apt-get purge openssh-server
  2. Sudo apt-get install openssh-server
  3. Sudo nano /etc/ssh/sshd_configを設定し、PermitRootLogin noを設定してrootログインを禁止する
  4. それからその下に次の行を追加します。

    AllowUsers yourusername

    パスワードを使用してログインする場合は、PasswordAuthenticationyesに設定されていることを確認してください。

  5. 追加または変更して特権の分離を無効にします。UsePrivilegeSeparation no

  6. Sudo service ssh --full-restart

  7. PuTTYなどのsshクライアントを使用して、WindowsからLinuxサブシステムに接続します。

115
Master Azazel

Windowsの実装はchrootを提供していないので、/ etc/ssh/sshd_configを修正する必要があります。

UsePrivilegeSeparation no

また、useraddコマンドなどを使用してユーザーを作成する必要があります。

27
d1val

上記の委員会別回答は素晴らしかった。彼らに感謝します。そして、それらが非常に接近している間、私はまだ Connectionが127.0.0.1問題によってクローズされていました。

この記事から追加のステップを見つけて追加しました 私はこぶを乗り越えました。特に、最初から始めて最初のステップとしてこれを追加して( - purge 修飾子に注意してください)、最後にこの問題の私のバリエーションを解決しました。

Sudo apt-get remove --purge openssh-server
Sudo apt-get install openssh-server
Sudo vi /etc/ssh/sshd_config # Change Port from 22 to 2222 (Just in case MS-Windows is using port 22; which, by the way, SSH on MS-Windows can be disabled if you want to use port 22).
Sudo service ssh --full-restart

もう一度ありがとう、私はこの追加が他の人に役立つことを願っています。 = :)

21
NYCeyes

私はMaster Azazelが示唆したようにすべてをして問題を抱えていました。ポート22に接続したときにパスワードの入力を求められましたが、Linuxサブシステムで設定したパスワードが機能しませんでした。

解決策1:
/etc/ssh/sshd_configのSSHポートを変更してサブシステムのSSHサーバーを再起動してください

解決策2:
Windowsのサービスコントロールパネルの「SSHサーバーブローカーサービス」を無効/停止し、サブシステムのSSHサーバーを再起動します。

4
scotty86

Sshにアクセスできない理由は、サーバーからのログに記録されています。

chroot( "/ var/run/sshd"):関数が実装されていません[preauth]

Linuxサブシステムにはchrootが実装されていないようで、sshサーバーにはそれが必要なので接続は許可されません。

2
Sami Kuhmonen