wsl2 arch로 ssh 구축하는 삽질

군대 안에서 코딩하기 위한 발버둥을 기록한 글

군대 안에서 어떻게 코딩언습을 할까 하다, 폰으로 하면 여러 제약 없이 할 수 있으니 모바일로 ssh를 연결하려했다.

집에 있는 데스크탑을 가족끼리 쓰다보니 윈도우를 밀 수 없다. 따라서 wsl를 이용해야되는데, wsl1 내 아치 리눅스에 안되는 게 많아서 wsl2를 사용해야했다. 마침 2004버전에 정식 릴리즈된다하니, 군대 가기(5/12) 전 까지 나오겠거니 하고 기다렸다.

하지만 끝까지 나오지 않았고, 결국 휴가를 써서 집에 돌아와 못 다한 작업을 하게 되었다.

본인은 힙스터라 아치 리눅스를 쓴다. 따라서 wsl에도 아치를 깔았다. wsl2 활성화 방법은 다른 블로그에 잘 있더라. 다만, 아치 리눅스는 스토어에 없어 깃헙에서 다운 받아야 했다. OS는 자동으로 설치되니, 내가 따로 해줘야 할 것은 패키지 받고 설정파일 클론하는 정도였다. fakeroot 는 wsl2에서 잘 되니까 fakeroot-tcp 를 지워주고. 이제 ssh만 연결하면 끝난다.

22번 포트는 wsl이 선점하고 있으니, 적당히 다른 포트로 바꿔서 연결을 시도했다. localhost에서 작동 확인하고 포트포워딩 하고 연결을 시도했는데, 안된다. 서버가 뭘 받는 기미도 없길래 ip를 잘못 입력했나 싶어서 ifconfig 를 쳐봤더니, ip가 오타치곤 너무 달랐다. 찾아보니 윈도우와 wsl2의 ip가 서로 다르단다. wsl2에서 가상화를 도입했기 때문에 가상 ip를 따로 쓰는 것이었다. 내부 ip에서 wsl로 포트포워딩하면 되겠지만, 이놈의 ip가 부팅 때 마다 바뀌더라.

다행히, 해결법은 이미 나와있다. $ports 의 값을 ssh에 할당한 포트로 설정한 후 파워셸 스크립트로 저장하면 된다고 한다. 켤 때 마다 실행해줘야 하지만, 이는 배치 스크립트로 해결했다.

잘 작동된다. 삽질을 열심히 한 끝에 마침내 원격코딩을 할 수 있게 되었다. 모바일로 이맥스를 쓸 생각하니 벌써부터 기대가 된다.