wsl2 의 Terminal 에서 pem 키를 사용하여 AWS EC2 에 접속할 때, 발생한 문제와 해결방법을 알아보겠다.
EC2 를 생성할 때, 사용한 pem 키를 저장해둔 디렉토리에 접근하여 ssh 접속을 시도하였다.
그런데 키에 대한 권한 오류를 확인하여, 간단히 chmod 600 {key-name}.pem 로 해결해야지.. 했지만, 해결되지 않았다.
chmod cmd 가 먹히지 않고, 권한이 그대로인 것을 확인했다.
해결 방법은 pem 키를 wsl 의 홈 디렉토리에 저장하는 것이다.
cp {key-name}.pem /home/사용자이름
cd /home/사용자이름
chmod 600 {key-name}.pem
아래와 같이 정상적으로 파일 권한이 변경된 것을 확인할 수 있다.
그리고 해당 EC2 의 sg 에 사용자의 로컬 ip 가 ssh 프로토콜로 인바운드 오픈 되어있다면, 정상적으로 접근이 된다.
WSL 에서 파일 권한 변경이 안될 때
WSL 은 Windows 의 NTFS 파일시스템을 사용하기 때문에, 일부 디렉토리에서는 리눅스의 권한 명령어가 적용되지 않을 수 있다.
WSL 의 특성: WSL은 리눅스 커널을 emulate (시스템 복제) 하는 것이 아니라, 윈도우 커널 위에서 리눅스 바이너리를 실행하도록 설계되어있다. 따라서 리눅스 파일 시스템과 NTFS 파일 권한 차이를 완벽하게 매핑하지 못한다.
NTFS 권한 제한: WSL 에서는 리눅스 파일 시스템의 권한을 NTFS 파일 시스템에 맞춰야 하므로, '/mnt/c' 등의 윈도우 디렉토리에서는 리눅스 파일 권한 변경이 제한될 수 있다.
홈 디렉토리 사용 권장: WSL 의 리눅스 홈 디렉토리 ('/home/사용자이름') 는 리눅스 파일 시스템의 권한을 그대로 사용할 수 있도록 설계되어있다.
따라서, WSL 의 파일 권한을 설정할 때는 홈 디렉토리를 사용하는 것이 중요하다.