vsc를 켜고 extension 관리 창에 들어가서 remote 검색 후 'Remote - SSH' 다운로드
2. ssh configuration 설정
그러면 오른쪽에 Remote Explorer이 생기는데 클릭!!
Remote Explorer 위에 있는 '+' 버튼을 누르면 아래와 같이 SSH 연결 명령 입력이라는 창이 나오게 됩니다 ssh 계정@ip 형식으로 입력합니다
그리고 configuration을 저장할 위치를 선택합니다
저는 .ssh/config 경로에 저장하였습니다
config 저장 완료!!
2.1 ssh 기본 포트가 22가 아닌 경우 설정
만약 기본 포트가 22가 아니라 다르게 설정되어 있다면 아래와 같이 진행합니다 톱니바퀴 모양을 눌러주어 config 파일을 열어줍니다
Host VSC_내의_서버_별명
HostName 서버IP_또는_도메인
User 서버접속계정
Port ssh포트(default: 22)
22가 아닌 경우에는 위와 같이 Port를 따로 명시해주면 됩니다
3. ssh 연결
그러면 위 처럼 추가가 된 것을 보실 수 있습니다 오른쪽의 폴더+ 버튼 처럼 생긴게 있는데 눌러주시면 연결을 시도합니다
3.1 platform 선택
저는 라즈베리파이에 연결하므로 Linux를 선택합니다
3.2 SHA key
SHA key?가 있다면서 액세스를 여시겠습니까 나와서 계속을 눌러주었습니다
3.3 서버 접속 계정 비밀번호 입력
비밀번호를 입력해주면 연결 준비가 끝납니다
처음 연결을 위해서는 설치해야될게 있는 것 같습니다 시간이 조금 걸립니다
4. 폴더 연결
설치가 다 끝나게 되면 VSC가 새로 하나 뜨게되며 위와 같은 창이 나오게 됩니다 그런데 Open Folder를 눌렀는데 아무 반응이 없더라구요...
왼쪽 아래에 보면 Open... 어쩌구 뜨면서 처음 연결 시 시간이 좀 걸리는 것 같았습니다 (사실 정상이라면 바로 연결 됨) 정상적으로 연결 되면 위 처럼 SSH:ip하고 나오게 됩니다 (그런데 이 경우는 에러가 발생했음에도 위와 같이 나옴...ㅠㅠ)
5. vsc remote-ssh 연결 에러
그런데 처음에 에러가 발생했습니다 여기서 보니까 에러 내용은 다음과 같았습니다
Failed to set up socket for dynamic port forward to remote port 44841: Socket closed. Is the remote port correct?
보니까 ssh 설정 중에 AllowTcpForwarding 설정이 yes로 되어있어야 한다고 합니다 아래와 같이 바꿔주면 됩니다
sudo vim /etc/ssh/sshd_config
#/etc/ssh/sshd_config
...
AllowTcpForwarding yes
..
sudo systemctl restart ssh
그리고 ssh를 재시작 해줍니다 그리고 위 과정을 다시 반복하여 연결하면 연결이 잘 됩니다!!
6. 폴더 연결
오른쪽의 open folder를 누르면 위 처럼 폴더를 선택하여 로컬의 폴더처럼 연결하여 사용할 수 있습니다 다만 현재 존재하지 않는 폴더로는 연결하지 못하는것 같습니다
폴더에 연결하였습니다!! (연결할때 비밀번호를 한 번 더 물음) 그러면 1번에서 현재 로컬처럼 파일들에 접근이 가능하고 생성도 가능합니다 2번에서 기존 vsc 사용하는 것처럼 편집 가능합니다 번에서 연결한 서버의 terminal을 그대로 사용할 수 있습니다. 제가 설치한 shell로 잘 보여지네요
7. 키 발급 받기
키를 발급 받아 서버에 키 파일을 넣어두게 되면 매번 비밀번호를 입력하지 않고 연결할 수 있습니다
Windows PowerShell을 열고 key 생성을 위한 명령어를 입력해줍니다
ssh-keygen -t rsa -b 4096
중간에 몇 가지 묻는 것들이 나오는데 모두 엔터눌러주시면 됩니다 그리고 아래 명령어를 입력해줍니다
Get-Content .\.ssh\id_rsa.pub
그러면 key 파일이 정상적으로 생긴 것을 확인할 수 있습니다 그러면 해당 파일의 내용을 cat으로 출력하여 ~/.ssh/authorized_keys에 저장해주시면 됩니다 아래 명령어를 입력합니다 (user와 ip는 각자 맞게 입력)