"Windows 10의 Ubuntu에서 Bash"에 SSH를 통해 어떻게 연결할 수 있나요?

"Windows 10의 Ubuntu에서 Bash"에 SSH를 통해 어떻게 연결할 수 있나요?

"Bash on Ubuntu on Windows"가 설치되어 작동하는 Windows 10 Anniversary Edition이 있습니다. 이 Ubuntu 인스턴스에 SSH로 연결할 수 있기를 원하지만 openssh-server가 설치 및 구성되어 있고(포트 2200에서 수신 대기) "localhost:2200"으로 SSH를 시도하면 "서버가 예기치 않게 발생합니다"라는 메시지가 나타납니다. 네트워크 연결이 닫혔습니다."

누구든지 이것을 성공적으로 수행할 수 있었습니까?

여기에 이미지 설명을 입력하세요

답변1

나는 그것을 작동시켰다; 방법은 다음과 같습니다.

SSH 서버를 제거하고 다시 설치한 후 다음으로 시작되었는지 확인하세요.

sudo service ssh --full-restart

루트 액세스를 끄고 구성 파일에 다른 사용자를 추가했는지 확인하십시오.

예상대로 127.0.0.1:22에서 하위 시스템에 연결할 수 있었습니다. 이것이 당신에게 도움이 되기를 바랍니다.

여기 스크린샷이 있습니다.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config설정하여 루트 로그인을 허용하지 않습니다.PermitRootLogin no
  4. 그런 다음 그 아래에 다음과 같은 줄을 추가합니다.

    AllowUsers yourusername

    비밀번호를 사용하여 로그인하려면 이 PasswordAuthentication설정되어 있는지 확인하세요 .yes

  5. 다음을 추가/수정하여 권한 분리를 비활성화합니다.UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. 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가 필요하므로 연결이 허용되지 않습니다.

관련 정보