기본적으로 Kali WSL Linux에서 SSH 서버를 활성화했습니다.
문제는 Windows에서 비밀번호를 제공하면 제대로 작동하고 연결에 성공한다는 것입니다.ssh [email protected]
인터넷에서 이 작업을 수행하면 ssh root@PublicIP
비밀번호를 묻는 메시지가 표시되고 실패합니다.
포트 22에서 SSH 액세스를 활성화하기 위해 라우터에서 포트 전달을 활성화했으며 PermitRootLogin: Yes
.
인터넷에서 ssh를 실행할 때 명령의 출력은 다음과 같습니다. ssh -vvv [email protected]
debug1: Trying private key: C:\\Users\\username/.ssh/id_dsa
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\\Users\\username/.ssh/id_dsa: No such file or directory
debug1: Trying private key: C:\\Users\\username/.ssh/id_ecdsa
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\\Users\\username/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: C:\\Users\\username/.ssh/id_ed25519
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\\Users\\username/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
debug3: failed to open file:/dev/tty error:3
debug1: read_passphrase: can't open /dev/tty: No such file or directory
서버 /var/log/auth.log
출력은 다음과 같습니다.
Aug 19 17:17:01 kali CRON[1427]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 17:17:01 kali CRON[1427]: pam_unix(cron:session): session closed for user root
Aug 19 17:21:13 kali systemd-logind[553]: New seat seat0.
Aug 19 17:21:13 kali systemd-logind[553]: Watching system buttons on /dev/input/event5 (Power Button)
Aug 19 17:21:13 kali systemd-logind[553]: Watching system buttons on /dev/input/event0 (AT Translated Set 2 keyboard)
Aug 19 17:21:15 kali sshd[586]: Server listening on 0.0.0.0 port 22.
Aug 19 17:21:15 kali sshd[586]: Server listening on :: port 22.
Aug 19 17:21:16 kali gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session opened for user Debian-gdm by (uid=0)
Aug 19 17:21:16 kali systemd-logind[553]: New session c1 of user Debian-gdm.
Aug 19 17:21:16 kali systemd: pam_unix(systemd-user:session): session opened for user Debian-gdm by (uid=0)
Aug 19 17:21:25 kali polkitd(authority=local): Registered Authentication Agent for unix-session:c1 (system bus name :1.16 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Aug 19 17:21:27 kali realmd[785]: Loaded settings from: /usr/lib/realmd/realmd-defaults.conf /usr/lib/realmd/realmd-distro.conf
Aug 19 17:21:27 kali realmd[785]: holding daemon: startup
Aug 19 17:21:27 kali realmd[785]: starting service
Aug 19 17:21:27 kali realmd[785]: connected to bus
Aug 19 17:21:27 kali realmd[785]: released daemon: startup
Aug 19 17:21:27 kali realmd[785]: claimed name on bus: org.freedesktop.realmd
Aug 19 17:21:44 kali gdm-password]: pam_unix(gdm-password:session): session opened for user root by (uid=0)
Aug 19 17:21:44 kali systemd: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Aug 19 17:21:44 kali systemd-logind[553]: New session 2 of user root.
Aug 19 17:21:47 kali polkitd(authority=local): Registered Authentication Agent for unix-session:2 (system bus name :1.55 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Aug 19 17:22:28 kali realmd[785]: quitting realmd service after timeout
Aug 19 17:22:28 kali realmd[785]: stopping service
Aug 19 17:23:03 kali sshd[1269]: Connection closed by 192.168.0.13 port 57122 [preauth]
Aug 19 17:24:35 kali sudo: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/usr/bin/passwd
Aug 19 17:24:35 kali sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Aug 19 17:24:37 kali passwd[1284]: pam_unix(passwd:chauthtok): password changed for root
Aug 19 17:24:37 kali passwd[1284]: gkr-pam: couldn't update the login keyring password: no old password was entered
Aug 19 17:24:37 kali sudo: pam_unix(sudo:session): session closed for user root
Aug 19 17:25:01 kali CRON[1287]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 17:25:01 kali CRON[1287]: pam_unix(cron:session): session closed for user root
Aug 19 17:26:11 kali sshd[1290]: Accepted password for root from 192.168.0.13 port 57190 ssh2
Aug 19 17:26:11 kali sshd[1290]: pam_unix(sshd:session): session opened for user root by (uid=0)
Aug 19 17:26:11 kali systemd-logind[553]: New session 5 of user root.
Aug 19 17:28:04 kali passwd[1307]: pam_unix(passwd:chauthtok): password changed for sshd
Aug 19 17:28:04 kali passwd[1307]: gkr-pam: couldn't update the login keyring password: no old password was entered
Aug 19 17:28:14 kali sshd[1290]: pam_unix(sshd:session): session closed for user root
Aug 19 17:28:14 kali systemd-logind[553]: Removed session 5.
Aug 19 17:35:01 kali CRON[1328]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 17:35:01 kali CRON[1328]: pam_unix(cron:session): session closed for user root
SSH에 성공적으로 연결하려면 어떻게 해야 합니까?
답변1
Windows의 Linux용 Windows 하위 시스템은 일반적인 Linux가 아닙니다. (자세한 데이터는 마지막에 있는 관련 질문 링크를 참조하세요)
원격 SSH가 제대로 작동하려면 의사 터미널 지원이 필요합니다. 이 두 기사에 따르면 최근 6월 Windows 14361 Insider Preview 업데이트에 추가되었습니다. 아직은 대중에게 공개되지 않았기 때문에현재 원격 SSH는 모든 WSL Linux 버전에서 작동하지 않습니다..
Ubuntu는 이를 준비하고 있는 것으로 보이지만 Kali는 따라잡는 데 종종 시간이 걸립니다.
또한 WSL에는 특별한 권한이 없으며 다른 일반 Windows 사용자/프로세스만 있습니다. WSL 명령줄 상자를 닫으면 WSL의 서비스/데몬이 더 이상 실행되지 않고 모든 프로세스가 종료됩니다.
(영구적인) Linux 서비스를 실행해야 하는 경우 가상 머신에서 Linux를 실행하는 것이 가장 좋습니다.
의사 터미널/pty 지원에 대해서는 다음을 참조하세요.
Tmux는 Windows의 Ubuntu에서 Bash를 지원합니다.
PC용 Windows 10 빌드 14361: 알아야 할 모든 것
Windows 10 빌드 14361에서는 WSL(Linux용 Windows 하위 시스템)에 의사 터미널 지원을 추가했습니다.
관련 질문 보기:Debian 버전 9.5 Linux에서 일반 터널을 실행하려고 합니다.
또한보십시오:의사 터미널(pty/tty)이란 무엇입니까?
추신. Windows와 밀접하게 관련된 WSL을 기반으로 하는 WLS에서 영구 서비스를 시도하고 실행하는 데 필요한 복잡한 설정/요령을 무시하지 않겠습니다. 그들은 추악하고 신뢰성이 의심됩니다.
새로운 WSL pty 구현으로 OpenSSH가 작동할 수 있는지 여부는 확실하지 않습니다.