Microsoft Store에서 구매를 하든 어둠의경로에서 구하든 Centos8.1을 설치한다. 무료로는 Centos8 Stream이 괜찮은 거같다. Redhat계열이면 페도라든 CentOS이든 CentOS Stream이든 상관 없다. 개인적으로 CentOS8 Stream이 젤 적당하다. 우분투보다는 용량도 적어서 난 서버는 무조건 Redhat계열로 한다. 라즈베리파이는 어쩔수없이 데비안계열로 한다.
설치를 하고 쉘에 들어가서 기본적으로 할일 한다. 나는 항상 서버작업을 root계정으로 해서 일반사용자계정은 없다.
systemctl 명령어는 기본적으로 python2 버젼에서 돌아간다. python2를 설치해준다. dnf install python2
mv /usr/bin/systemctl /usr/bin/systemctl.old -- 원래 명령어 백업 나중에 삭제해도 된다. mv systemctl.py /usr/bin/systemctl -- 방금 저장한 systemctl.py 를 /usr/bin/ 에 이름바꾸서 옮긴다. sudo chmod +x /usr/bin/systemctl -- 실행권한을 부여한다.
다시 ssh 데몬을 확인해본다. systemctl status sshd 정상 동작 될거다. systemctl start sshd 후 서비스 확인하면 fail 나 있을 것이다. 인증키 없어서 그렇다. ssh-keygen -A 인증키 생성 되었다.
이제 다 빠져 나가서 컴터 재부팅을 하든지 아니면 cmd창에서 wsl --shutdown 으로 리눅스를 종료한다. 그리고 다시 centos8.1 실행 systemctl start sshd 잘 실행 된다.
native centos 에서는 systemctl enable sshd 이렇게 해두면 리눅스 부팅할때 자동으로 데몬이 올라가지만 wsl에서는 씹힌다. 원인은 나두 모른다. 며칠을 삽질했지만 안 되서 포기했다. 매번 시작시켜 주던가 아니면 작업스케줄러에 등록해야 한다. wsl -u root -- systemctl start sshd <-- 이건 redhat 계열 wsl -u root -- service ssh start <-- 이건 debian 계열