DEV

[Visual Studio Code] 설치 및 원격 서버 접속하기 (Remote Development 플러그인)

philiel 2022. 1. 27. 03:34
  1. Visual Studio Code 설치 및 Remote Development 플러그인 설치
  2. Visual Studio Code에서 ssh 접속
  3. 자동 로그인
1. Visual Stuido Code 설치
https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

22-01-26 / 홈페이지 방문 이미지 / windows 64bit Stable 다운로드

 

 

22-01-26 / 설치화면 / 원하시는 추가 작업 선택. 저는 바탕화면에 바로가기 추가했습니다.

 

 

22-01-26 / 좌측 Extension 아이콘 클릭 후 Remote Development에서 Install 버튼 클릭 후 완료 화면 / 설치 완료가 된다면 좌측에 아이콘이 새로 생성됩니다.

 

 

2. ssh 접속

22-01-26

 

 

SSH TARGETS 탭에 커서를 위에 두면 + 버튼이 나타납니다.

클릭 시, 상단에 입력하는 창이 뜨는데 아래와 같이 입력해줍시다.

ssh [계정]@[서버 host | 서버 IP 주소] -A    /  ssh root@192.168.0.2 -A

 

 

 

22-01-26 / ssh 접속 config 파일을 둘 곳을 선택 / 저는 홈디렉토리의 .ssh\config 를 선택했습니다.

 

 

22-01-26 / SSH TARGETS에 커서를 위에 두면 톱니바퀴가 나타나고 중앙상단에 방금 선택한 경로 클릭 시 config 파일이 보여지게 됩니다.

 

 

22-01-26

 

 

아마 새창을 클릭하신 후 새 창이 나타나면 상단에 비밀번호를 요구합니다.

입력 후 서버 폴더에 접근하실 때도 비밀번호를 요구합니다. 매우 귀찮습니다.

 

3. 자동 로그인

아래 생활코딩 홈페이지에 더 자세히 설명되어 있지만 간단하게 요약하겠습니다.

ssh 인증키 참고링크

생활코딩 https://opentutorials.org/module/432/3742

 

 

3-1. 로컬(Window10, ssh-client) PowerShell에서 ssh-key를 발급한다.

3-2. 원격 서버(CentOS, ssh-server)의 /[홈디렉터리]/.ssh/authorized_keys 파일을 추가해주어야 한다.

3-3. 자동로그인 호스트 차단 및 허용


[3-1]

[로컬]

C:\홈디렉토리\> ssh-keygen -t rsa

입력하라고 PowerShell에 뜨는데 다음과 같이 입력해줍니다.

저장할 경로 -> enter (기본값은 홈디렉토리/.ssh)

패스워드 -> enter     (자동로그인)

패스워드 확인 -> enter

홈디렉토리/.ssh 폴더 아래 id_rsa, id_res.pub 파일이 생길 것이다.

 

[3-2]

[원격 서버]

로컬에서 생성된 id_res.pub를 원격 서버로 옮겨야 된다.

scp 명령어를 이용해 주자.

scp [보내고싶은파일 경로] [계정]@[host | ip주소]:[경로]
scp C:\[홈디렉토리]\id_rsa.pub root@192.168.0.2:/root/.ssh/id_rsa.pub

파일을 옮겼다면 id_rsa.pub를 출력하고 그 출력물을 authorized_keys에 추가해주면 된다.

[root@localhost ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@localhost ~]# ls -al
drwx------. 2 root root  66  1월 27 02:58 .
dr-xr-x---. 7 root root 248  1월 27 02:58 ..
-rw-r--r--. 1 root root 402  1월 26 06:08 authorized_keys
-rw-r--r--. 1 root root 402  1월 26 06:07 id_rsa.pub
-rw-r--r--. 1 root root 173  1월 26 03:35 known_hosts

 

 

[3-3]

자동로그인은 공인ip 유출 시 치명적입니다. 주의하세요.

저의 경우는 외부아이피 차단을 위해

로컬에서 ssh는 열고,

외부아이피는 ssh를 모두 차단시키는 방법을 택했습니다.

신뢰할 수 있는 외부에서 접속을 원하면 allow 쪽에 특정 ip를 작성해주면 됩니다.

설정에서 ip range(범위)는 구글링하면 자세히 나와있으니 참고하시기 바랍니다.( 시간 되면 자세히 포스팅할 겁니다..)

참고.. allow는 deny보다 나중에 적용 
즉, hosts.deny 이후 hosts.allow가 덮어씌운다고 생각하자.
[root@localhost ~]# vi /etc/hosts.deny
#
# hosts.deny    This file contains access rules which are used to
#               deny connections to network services that either use
#               the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               The rules in this file can also be set up in
#               /etc/hosts.allow with a 'deny' option instead.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd: ALL
:wq
[root@localhost ~]# vim /etc/hosts.allow
#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd: 192.168.0.
:wq
[root@localhost ~]# systemctl restart sshd

 

최초작성 2022-01-26

부족한 제 포스팅 찾아와 주셔서 감사합니다.

노트북 포맷하고 windows10 새로 설치하는 과정에서 putty나 FileZila를 설치하기 전에 문득 생각이 스쳤다.

"vscode에 터미널이 있다면 ssh 접속도 가능하지 않을까??" 이런 생각이 들었다.

회사에 있었을 때 서버를 처음 다뤄보았고 일하는 분은 다 putty, FileZilla로 명령어를 입력하거나 파일을 이동시켰는데.. acro edit 기능 중 ftp로 바로 코드를 편집할 순 있었지만 자동완성은 없었기에 불편했던 기억이 있다.

vscode에서 터미널을 오픈하니 powershell이 작동했고 ssh를 입력하자 설치가 되어있다는 것을 알게 되었다.

전에 쓰던 옛날 pc를 포맷하고 centOS를 설치했는데 거기도 접속이 되나 명령어 쳐봤다니 접속이 되었다.

 

오.. 그럼 ssh로 vscode의 수많은 플러그인들을 이용할 수 있지 않을까 생각했고,

구글링해서 Remote Development라는 플러그인을 발견했고..

적용은 성공했다.

 

2022-01-27

꽤나 구글링을 많이 했는데.. 적용 가능한 정보만 쏙 빼서 가공하는 것은 쉬운 일이 아니다 ..

그리고 문제가 발견됐다.

"어 ? 자동 로그인 존나 위험한 거 아녀??? 외부에서도 ssh 접속이 바로 되잖어!"

호스트 허용 문제 때문에 시간이 더 걸렸는데 차단하는 방향으로 가닥을 잡았다.

별 것 아닌 줄 알았는데 꽤나 많이 고려해야 했다. 거기다 블로그도 내용 채워 넣는 게 힘드네..

'DEV' 카테고리의 다른 글

[Ubuntu] root 계정 ssh 접근 허용  (0) 2022.01.28
[CentOS]ISO 이미지 파일로 CentOS 7.9 설치 (usb필요)  (0) 2022.01.24