컴퓨터 맨의 Linux (WSL2) OpenSSH 접속 4 (f.내부 포트 포워딩)

컴퓨터맨 리눅스(WSL2) OpenSSH접속 1(f. localhost) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 Medium에 조선계 미국인 또는 조선인이 Computa에… blog.naver.com

컴퓨터맨 리눅스(WSL2) OpenSSH접속 1(f. localhost) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 Medium에 조선계 미국인 또는 조선인이 Computa에… blog.naver.com

컴퓨터맨의 Linux (WSL2) OpenSSH 접속 2 (f. 공개키 인증 Pubkey Authentication) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 3. 비밀번호 입력없이 publickey로 SSH 접속 3… blog.naver.com

컴퓨터맨의 Linux (WSL2) OpenSSH 접속 2 (f. 공개키 인증 Pubkey Authentication) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 3. 비밀번호 입력없이 publickey로 SSH 접속 3… blog.naver.com

컴퓨터 맨의 Linux (WSL2) OpenSSH 접속 3 (f.SSH 서버 자동 실행 / 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 4. Windows 부팅 시 SSH 서버 자동 연결 4-1. Windows blog.naver.com

컴퓨터 맨의 Linux (WSL2) OpenSSH 접속 3 (f.SSH 서버 자동 실행 / 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 4. Windows 부팅 시 SSH 서버 자동 연결 4-1. Windows blog.naver.com

컴퓨터 맨의 Linux (WSL2) OpenSSH 접속 3 (f.SSH 서버 자동 실행 / 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 4. Windows 부팅 시 SSH 서버 자동 연결 4-1. Windows blog.naver.com

 

https://m16.me/files/attach/images/150/532/633/030/3439dfc686294a3b6d3b9dcd429236e8.pngPC맨의 관점에서 이해한 포트 포워딩(f. 공인 IP, 사설 IP, 가상 IP, SSH 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 WSL2의 SSH 서버 접속 세팅을 계속한다… blog.naver.comPC맨의 관점에서 이해한 포트 포워딩(f. 공인 IP, 사설 IP, 가상 IP, SSH 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 WSL2의 SSH 서버 접속 세팅을 계속한다… blog.naver.comPC맨의 관점에서 이해한 포트 포워딩(f. 공인 IP, 사설 IP, 가상 IP, SSH 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 WSL2의 SSH 서버 접속 세팅을 계속한다… blog.naver.com높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 AI도 인정한 불후의 명저 <주식투자의 진짜 공부>주식투자 진짜공부 : 네이버 도서 네이버 도서 상세정보를 제공합니다.search。shopping。naver.com주식투자 진짜공부 : 네이버 도서 네이버 도서 상세정보를 제공합니다.search。shopping。naver.com5. 내부 네트워크 클라이언트에서 호스트 PC의 SSH 서버 접속 5-1. 부팅할 때마다 변화하는 SSH 서버 IP 검색# SSH서버IP검색$wsl_ip=(wsl-d”[사용하는 우분투]”hostname-I)。split(“, 2)[0] // SSH서버IP를변수$wsl_ip로대체 #확인(헷갈리면리눅스를떠 ifconfig나hostname-I로확인해보는것)$wsl_ip5-2. 이 대역 통신망 내의 다른 호스트가 호스트 PC에 인스톨 한 Linux에 접속할 때 필요한 SSH포트 포워딩(사설 IP→ 가상 IP)전문에서 말한 것처럼 로컬 PC1대만으로 작업할 경우 4-2설정까지 마치면 좋다.어차피 localhost로 접속하면 WSL2가 127.0.0.1을 통해서 내가 잡아 준다.설치하면서 이것 저것 읽다 보면 깨달은 것이지만, 실은 이 경우(WSL2의 Linux에 외부 웹 서버를 별도로 호스팅 하는 윈도에서 이 외부 웹 서버에 직접 파일을 전송하는 것이 아니라 이상)SSH가 전혀 필요 없다.인증키를 내밀 때 본것처럼, 기본 OS인 Windows커넬과(Windows커널에 설치된 가상 머신 Hyper-V에서 돌아와)WSL2의 Linux커넬은 동일한 하드 드라이브에 설치되어 있어 직통 송수신이 가능하다.그러므로 단순히 WSL2의 리눅스 작업 내용을 로컬 창과 주고받으면 그냥 drvfs기능을 사용하여 mount하면 된다.이 경우 가장 좋은 것은 Step3-1의 옵션 C. 그러나 외부 로컬 PC에 접속하여 작업하거나, 놀기계 또는 NAS을 서버에 모두 홈 네트워크를 만들고자 하는 사람도 있을 것이다.나는 후자의 경우이다.최종적으로는 외부 업무가 많을 때(i.e., 코로나 전)작업용에 맞춘 구형 노트북에 리눅스 OS를 설치하고 이를 서버에 돌린다고 생각한다.하지만 오랜만에 컴퓨터에서 노는 것이 너무 즐겁고 잠깐 놀고 있다고 일이 산적에 있어 일단 기본적인 세팅 법을 익히면서 네트워크를 개괄적으로 이해하는 데 그치기로 했다.이번 주말까지…이래봬도 WSL2에서 SSH서버를 돌려서 창에서 ipconfig/all을 누르면 IP가 2개 표시된다.컴맹이고 문과인 나에게는 매우 낯선 개념이다.이것저것 조사한 후 대략 다음과 같은 구조로 이해했다.PC맨의 관점에서 이해한 포트 포워딩(f. 공인 IP, 사설 IP, 가상 IP, SSH 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 WSL2의 SSH 서버 접속 세팅을 계속한다… blog.naver.com외부망 포트 포워딩은 다음 글로 미루고 우선 같은 대역망(192.168.~)을 공유하는 서브넷 포트 포워딩부터 해보자. 원래 로컬 호스트-내부 네트워크-외부 네트워크 순으로 테스트하는 것이다.이 부분도 1편에 메인 레퍼런스라고 써놓은 신뢰성이 높아 보이는 아조 씨의 포스팅을 참조해 나름대로 프롬프트를 한 줄씩 열어보고 원문 코드를 내 취향에 맞게 조금 변형시켰다.SSH서버의 IP는 첫줄의 명령으로 잡아 오고, 호스트-RTX3060ti-인 윈도 PC의 사설 IP는 CMD와 파워 셸로 ipconfig에서 찾는다.netshint~listenport=3333~connectport=[NN]프롬프트(일행)은 다른 클라이언트가 일단 내부망까지 들어왔다고 가정하고-SSH서버가 돌고 있는 호스트 PC의 사설 IP의 333번 포트(192.168.X~:3333)에 접속할 경우 호스트 PC와 SSH서버를 접속하는 WSL2포트(172.X~:NN)에 forward한다.포트 NN은 전문의 SSHD.config로 설정한 포트(따로 설정하지 않은 경우 기본 포트 22)만약 접속할 수 없는 경우 SSHD.config에서 TCP Keep Alive를 Yes처리할 것.#외부에서 로컬 창을 통해서 SSH서버 IP를 받은 뒤 WSL에 설치된 SSH서버에 접속$wsl_ip=(wsl-d”[사용하는 Ubuntu]”hostname-I). split(“”, 2)[0]//SSH서버 IP치환 netshint portproxy delete v4tov4listenaddress=0.0.0listenport=[ABCD]//마지막으로 사용된 수신 프록시 규칙 초기화 netshint portproxyadd v4listenaddress=0.0.0listenport=[ABCD]connectaddress=$wsl_ip connectport=[NNN]/클라이언트 포트/외부 접속 시. conf에서 열어 둔 SSH서버 포트[NNN]에 송신#상기 수신/송신 규칙이 올바르게 설정되어 있는지 확인 netshint portproxy show v4tov4listenport=[ABCD]는 아까 시험 때문에 임의로 설정한 포트 333이다(내부 IP과 충돌만 없으면 뭐든 상관 없어)connectport=[NN]은 전문의 SSHD.config로 설정한 포트(따로 설정하지 않은 경우 기본 포트 22)임죄다22,22,888 이렇다 보니 listenport와 connectport를 통일하고 놓아 컴퓨터 맨이 약간 혼란스러운 부분이지만, 메인 레퍼런스로 쓴 아장 씨의 프롬프트 내용을 가만히 보면 대충 알게 됐다.창에서(지금)설정하는 부분은 IPv4에서 IPv4(v4tov4)전달 프록시(portproxy).출처: 위키백과뭘 받으면 SSH 서버로 넘겨주지 않을까? 그렇다고 아무나 적당히 받을 수는 없고, 내가 이해한 포트 포워딩에 적은 것처럼 특정 포트[ABCD]를 통해 들어오는(listenport) 클라이언트만 SSH 서버로 넘기는 작업이다.호스트 PC인 윈도우(i.e., 사설 IP)에 들어오므로 SSH의 방화벽과는 상관없이 윈도우 방화벽에만 포트 수신(listenport) 허용 규칙을 추가하면 되는 것이다.#상기의 규칙(s.t. 외부 호스트 PC포트[ABCD]에 접속 허가)를 Windows방화벽에 등록 netsh advfirewall firewall add rule name=”[규칙 이름]”dir=in action=allow protocol=TCP localport=[ABCD]#룰이 방화벽에 예외 처리되어 있는지 확인 Get-NetFirewall PortFilter| Where-Object<$_.LocalPort-eq[ABCD]}| Get-NetFirewallRule이제 받은 때문 SSH서버에 전달해야 한다.어디로?SSH서버의 주소(i.e.connectaddress;가상 IP)에게 주어야 한다.SSH서버는 재기동할 때마다 바뀐 동적 IP이기 때문에 위에서 가상 IP를 fetch한 뒤$wsl_ip과 변수로 바꾸어 놓은 거에요.호스트 PC인 윈도의 수신 규칙과 마찬가지로 SSH서버도 모든 접속을 받아들이는 것은 아니다.그럼 어느 포트(i.e., connectport)에 forward 하면 좋을까?인증 키 교환 시 SSHD.conf에서 송수신 후 포트[NNN]에서 00위 내용을 코피페하고 배치 파일로 만든 뒤 4-1과 마찬가지로 자동 실행 폴더에 넣으면 다른 클라이언트가 호스트 PC를 통해서 호스트 PC에서 구동 중인 WSL2의 SSH서버에 언제라도 접속할 수 있다.내부 포워딩 포트를 윈도우 방화벽 규칙에 한번 등록한 뒤 계속 쓰지 않는다는 조건 하에서 자동 실행 배치 파일은 이하의 명령대로 작성한다.@title off$wsl_ip = (wsl -d “” hostname -I).split(” “, 2)[0]netshint portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=[ABCD]netshint portproxy add v4 to v4 listenaddress=0.0.0.0 listenport=[ABCD]connectaddress=$wsl_ip connectport=[NNN]5-3. 다른 컴퓨터로 접속 테스트를 해본다. 내부 포트 포워딩 테스트를 하는 다른 서브넷 호스트는 아직 인증 키(i.e., id_rsa)가 없으므로 연결 전 sshd.conf에서 passwordauthentication을 yes로 수정한 후 비밀번호로 연결해야 합니다.’새로운 크로스 플랫폼’ 글씨체 실화?같은 라우터에 물려 있는 노트북에서 파워셸에 SSH 접속해 보면 잘 된다.# 다른 컴퓨터에서 호스트 PC 창에 SSH 연결하고 호스트 PC의 WSL2에서 돌아오는 SSH 서버에 연결 sh-p [ABCD] [WSLusernmae]@[호스트 PC의 사설 IP;192.168.~][WSL 비밀번호 입력]다음에는 윈도우의 opensh든 putty든 git든 뭐든 사용해서 접속해서 인증키를 주고받으면 되니까… 여기까지는 귀찮아서 안 해봤는데 원리는 똑같으니까. 5-4. 다 쓰면 꼬리를 뽑지 않고 문을 닫는 기존 네트워크 프록시를 삭제한 후 새로 생성 (파워쉘 관리자 모드)#포트[ABCD]에서 수신하는 Windows-SSH서버 프록시 규칙 삭제 netshinterface portproxy delete v4tov4listenaddress=0.0.0listenport=[ABCD]#Windows-SSH서버 프록시 규칙 전체 삭제 netshint portproxy resetall#네트워크 포트 프록시 동작 중인 것이 있는지 확인 netshinterface portproxy show v4#”[규칙 이름]”에서 열린 윈도 방화벽 포트 감고 netshadvfirewalle firewalle rame”쓰다보니 ‘이것도 배치 파일로 만들어서 종료 시 스크립트가 실행되도록 하면 되지 않을까?’라는 생각으로 만들어봤고 실제로도 작동한다. 스케줄러 ㄱㄱ이로써 내부 포트 포워딩을 통해 동일한 대역망을 공유하는 기기(i.e., 서브넷 호스트)끼리는 서버 컴퓨터의 SSH 서버 접속이 가능해졌다!질문금지나 문과야 나도 잘 몰라컴퓨터 멘의 리눅스(WSL2) OpenSSH 접속 5(f.DDNS로 외부 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 6. 외부 망에서 내부 SSH 서버로의 접속 6-1. 방화… blog.naver.com컴퓨터 멘의 리눅스(WSL2) OpenSSH 접속 5(f.DDNS로 외부 접속) 높은 수준의 지식과 통찰력을 제공할 가치가 있는 작품 6. 외부 망에서 내부 SSH 서버로의 접속 6-1. 방화… blog.naver.com