[Linux] 리눅스 사용자 추가 및 VS Code SSH 원격 개발 환경 구축
개발 인력이 늘어나면, 리눅스 서버 관리자는 각 유저에게 계정과 권한을 할당해야한다. 우선 그 방법을 알아보고 ssh 기반의 원격 개발 환경 구축까지 알아보도록 하자. 우선 기본적인 리눅스 서버가 하나 있다고 가정하겠다. 작성자는 AWS EC2의 ubuntu 환경에서 진행했다.
진행 순서
1. 사용자의 Open SSH 공개키 생성
2. 리눅스 유저 생성 및 권한 할당
3. Visual Studio Code 로 원격 접속
1. 사용자의 Open SSH 공개키 생성
사용자는 먼저 아래 주소로 접속한 뒤, 현재 개발하고 있는 OS에 맞는 putty를 다운 받는다.
설치 후 PuTTYgen 을 실행한다.
실행 후, Generate 버튼을 누르고 마우스를 흔들어 재끼면(움직여야), 키가 생성된다.
우선 Save private key를 눌러 .ppk 파일을 저장한다.
프라이빗 키이기에 공개하지 않는 키로, 이걸 이용해 앞으로 PuTTY를 통한 원격 접속을 한다.
버튼을 누를 시, 다음과 같은 메시지가 나오는데, 일단은 '예'를 누르면 된다.
Save public key도 따로 저장해 놓는다. 언젠가 필요하다.
다음으로 리눅스 서버 내에 저장해야할 OpenSSH 공개키를 복사해놓는다.
이는 공개키로 공용 문서 같은 곳에 저장해 보관한다.
(다음 단계에서 리눅스 서버내 계정 하위 디렉토리의 authorized_keys 파일 생성 후, 붙여넣기 할 키이다.)
다음으로 SSH-1(RSA)를 선택한 뒤, Conversions 메뉴에서 Export OpenSSH key를 눌러 저장한다.
이는 VS Code 에서 Remote-SSH를 이용해 원격 접속할 때 필요하다.
모두 완수하면 4개의 키를 가지게 된다. 이는 리눅스 사용자를 증명하는 키이기에 잃어버려선 안된다.
2. 리눅스 유저 생성
이제 관리자의 차례이다. 관리자는 PuTTY를 이용해 루트 계정으로 서버에 접속한다. (AWS EC2 리눅스 서버에 PuTTY로 접속하는 방법이나 인바운드 정책 추가 방법은 이미 알고 있다고 가정하겠다.)
명령어를 입력해 유저를 생성한다. 나는 이름으로 했다.
sudo adduser [유저아이디]
이제 사용자 명으로 /home/사용자명 디렉토리가 생성되었고 해당 디렉토리로 이동한 뒤, .ssh 경로를 생성한다. 그 다음 .ssh 경로 내에 authorized_keys 파일을 생성(touch)한다. 명령어는 다음과 같다.
cd /home/사용자명
sudo mkdir .ssh
cd .ssh
sudo touch authorized_keys
이제 vi로 해당 파일에 아까 복사해 두었던 Open SSH 공개키를 붙여넣고 저장한다. (vi 사용법은 알고 있다고 가정)
sudo vi authorized_keys
이제 해당 디렉토리와 사용자에게 권한을 부여(chmod, chown) 하는 명령어를 차례로 입력한다. 권한 부여 명령어에 관한 것은 리눅스에 대한 이야기로 넘어가기에 해당 포스트의 범위 밖이다. 따로 검색해보자.
sudo chmod 700 authorized_keys
cd ..
sudo chmod 600 .ssh
sudo chown -R [사용자명]:[사용자명] .ssh
sudo chmod 700 .ssh
sudo chmod 600 .ssh/authorized_keys
마무리로 해당 사용자에게 sudo 권한을 주고 싶다면 다음과 같은 명령어를 입력한다.
sudo usermod -aG sudo [사용자명]
이로써 리눅스 서버에 사용자 추가가 완료되었다. 이제 사용자는 ppk 파일을 이용해, PuTTY로 리눅스 서버에 접속할 수 있게 되었다.
3. Visual Studio Code 로 원격 접속
이제 새로 입사한 백앤드 개발자는 해당 서버에 사용자로 추가되었다. 이제 개발 환경을 셋팅할 차례이다. VSCode 를 다운 받아 설치한 뒤, 확장 플러그인에서 'Remote - SSH' 를 설치한다.
이제 VS code 하단에 원격 창 열기 버튼을 누르고 검색창이 뜨면 Open SSH Configuration File... 을 누른다.
이후 윈도우의 사용자 디렉토리 하위 폴더 .ssh/config 파일을 누르고 편집한다.
Host는 아무거나 식별가능한 것을 적는다.
HostName은 EC2 인스턴스의 주소를 적는다. AWS가 아니라면 서버 IP를 적는다.
User는 아까 리눅스 서버에서 생성한 사용자명을 적는다.
IdentityFile은 별도로 변환 후 생성했던 OpenSSH 공개키 파일의 위치를 적는다.
Host sshserver
HostName ec2-00-000-00-00.ap-northeast-2.compute.amazonaws.com
User 사용자명
IdentityFile C:\Users\user\Desktop\keyManagement\[OpenSSH공개키 파일명]
해당 파일을 저장한다.
이제 다시 원격 창 열기 버튼을 누르고 Connect to Host... 버튼을 누른다.
config 파일에서 설정한 호스트 이름이 뜬다.
이를 누르면 별도의 VScode 창이 열리면서 해당 서버에 원격으로 접속된다.
접속한 화면은 다음과 같다.
여기서 폴더 열기를 누르면 리눅스 사용자의 /home/사용자 디렉토리를 조회 및 편집도 할 수 있고, 터미널을 이용해 명령를 수행할 수도 있다.
끝.
댓글