WSL로 SSH하는 방법


30

오랜 독자, 최초의 질문자.

나는이 답변의 지시를 따랐습니다.

"Windows 10의 Ubuntu에서 Bash"에 SSH로 연결하려면 어떻게해야합니까?

같은 컴퓨터의 Windows에서 PuTTY에서 SSH를 시도하고 있습니다. 내 구성 파일과 일치하는 포트 22 사용. 127.0.0.1과 127.0.1.1을 모두 시도했습니다. 그러나 여전히 "액세스 거부"가 표시됩니다.

여기에 이미지 설명을 입력하십시오

궁극적으로 Visual Studio 원격 빌드를 설정하려고하지만 지금까지 원격으로 전혀 들어갈 수 없었습니다. 다음 단계는 무엇입니까?

Process Hacker는 포트 22에 대해 이것을 표시합니다 (이것의 의미가 확실하지 않음).

여기에 이미지 설명을 입력하십시오

다음은 / etc / ssh / sshd_config의 내용입니다.

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation no

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no
AllowUsers basel
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

"액세스 거부"는 계정에 잘못된 비밀번호를 제공하고 있음을 의미합니다.base1
Ramhound

1
잘못된 비밀번호를 제공하지 않았습니다. 나는 그것을 변경하고 확인하기 위해 몇 번 재 시도했습니다.
바젤 Alghanem

당신은 주위를 둘러 보았습니까 ?
Matt Clark

1
나는 오늘 아침 몇 시간 동안 주위를 둘러 보았습니다. 불행히도 나는이 분야에서 일반적으로 알 수 없습니다. 답변에 제안 된대로 줄을 주석 처리하려고 시도했지만 도움이되지 않았습니다. 키 기반 인증 시도가 효과가 있다고 생각하십니까?
바젤 알카 em

1
포트 2200 (sshd_config의 5 행)으로 전환되었고 WSL에 성공적으로 로그인 할 수있었습니다. Windows가 포트 22를 사용하여 Linux를 사용할 수 없었던 것 같습니다. 또한 sshd는 프로세스 해커에서 포트 2200을 수신하는 것으로 나타 났는데, 포트 2200은 이전에는 전혀 나타나지 않았습니다. 질문에 대한 답변으로 이것을 제출합니까?
바젤 알카 em

답변:


25

22 포트를 파일에서 2222와 같은 다른 포트로 변경 한 /etc/ssh/sshd_config다음 commond에 의해 ssh 서비스를 다시 시작 sudo service ssh --full-restart하면 성공적으로 로그인됩니다.하지만 이유를 모르겠습니다.

또한 VisualGDB에서 Visual Studio의 원격 gdb 서버로 사용하려고 시도하지만 제대로 작동하지 않습니다. offical 한 웹 사이트 shows.The 링크가 그대로 VisualGDB은 다음 버전에서 지원합니다 https://sysprogs.com/w/forums/topic/visualgdb-with-windows-10-anniversary-update-linux-support/#post- 9274


이제, VisualGDB는에 자세한 내용을이를 지원 visualgdb.com/tutorials/linux/win10
NUL LUN

4
Windows가 포트 22에서 SSH Server Broker를 실행할 수 있기 때문입니다. 필요한지 확실하지 않으면 안전하게 비활성화 할 수 있습니다. 개발 중 일부 절차에 사용됩니다.
UnclickableCharacter

3
Windows 방화벽에서 포트를 여는 것을 잊지 마십시오.
dthor

3
인증도 변경해야 할 수도 있습니다. 기본적으로 클라이언트에는 ssh 키가 필요합니다. 클래식 사용자 / 비밀번호 로그인을 원하면이 구성을 /etc/ssh/sshd_config다음 과 같이 설정하십시오 .PubkeyAuthentication no PasswordAuthentication yes
Tonatio

1
@dthor와 같은 방화벽 규칙을 사용하도록 설정하고 Tonatio와 같은 암호 인증을 사용하도록 설정해야 작동했습니다.
sdkks

10

Windows에는 SSH 서버가 내장되어 있으므로 포트 22가 작동하지 않습니다.

Windows 10에는 SSH 서버가 포함되어 있으며 비활성화해야하거나 WSL의 SSH에 사용될 포트를 변경해야합니다. 후자를 선택하고 WSL SSH에 포트 2200을 사용하기로 결정했습니다.

출처 : https://virtualizationreview.com/articles/2017/02/08/graphical-programs-on-windows-subsystem-on-linux.aspx


이것은 실제로이 질문에 대한 유일한 정답입니다. 허용 된 답변조차도 이것이 포트를 변경 해야하는 이유임을 암시합니다. 이 답변에 24 시간 내 현상금을 수여합니다.
Ramhound

2

로그인 할 때 WSL Linux 사용자 비밀번호가 아닌 Windows Microsoft 계정 비밀번호를 사용하십시오. cmd.exe를 실행하는 Windows 홈 디렉토리에 로그인됩니다. 명령 /windows/system32/bash.exe ~ --login을 입력 하여 WSL 홈 디렉토리에 로그인하고을 실행하십시오 .profile.


1

WSL : 또한 'UsePrivilegeSeparation no'를 찾으십시오. 그렇지 않으면 콘솔에서 서버를 실행하면 (/ usr / sbin / sshd -Dddde) PrivilegeSeparation이 구현되지 않은 채 실패합니다 ...


1
UsePrivilegeSeparation은 더 이상 사용되지 않습니다
mFeinstein

0

내가 한 것은 ssh-keygen 대신 sudo ssh-keygen이 파일을 올바르게 작성하지 못하는 몇 가지 초기 문제에 부딪 혔기 때문에 수정되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.