
답변1
나는 그것을 작동시켰다; 방법은 다음과 같습니다.
SSH 서버를 제거하고 다시 설치한 후 다음으로 시작되었는지 확인하세요.
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가 필요하므로 연결이 허용되지 않습니다.