태그 글 보관함: VSCode

윈도우 환경에서 vscode github ssh 공개키 방식으로 연결해서 패스워드 입력 생략

윈도우 환경의 VSCode에서 github 리파지토리를 연동해서 사용할때 아이디/패스워드를 생략하기 위해 SSH 공개키/개인키를 이용해서 접속하는 방법을 설명해 보겠다.

발단

VSCode에서 golang 개발을 하고 있는데 노트북과 데스크탑을 왔다갔다하니 소스코드 공유를 위해서 github를 쓰고 있다.
소스코드 공유를 해야되니 개발 도중의 코드도 자주 푸시할 수밖에 없는데 리모트에 뭐할 때마다 아이디/패스워드를 입력하라고 해서 너무 귀찮다.
그래서 알아보니 리파지토리를 HTTPS가 아니라 SSH를 사용해서 공개키/개인키를 사용해서 접속하면 아이디/패스워드 입력을 안해도 된다고 해서 그렇게 설정하니 너무너무 편하다.

SSH로 리파지토리 접속

먼저 기존에 사용하고 있던 공개키/개인키가 있으면 공개키를 github에 등록하고, 개인키는 윈도우의 유저폴더(c:\Users\USER_ID) 디렉토리 아래 .ssh 폴더에 넣으면 된다.
만들어 둔 공개키/개인키가 없으면 다음 순서대로 진행해서 만들자.

공개키/개인키 작성

github를 쓰고 있으면 git은 당연히 설치했을건데 git 설치폴더에 보면 git-bash.exe 파일이 있다. 실행하면 리눅스 커맨드창이 뜬다.
git이 없으면 이 글을 보고 설치하자. 윈도우10 git 설치와 vscode 에서 github 리파지토리에 파일 올리기

리눅스 커맨드창을 띄웠으면 일단 유저 폴더의 .ssh 폴더로 이동한다.

공개키/개인키 작성은 아래 커맨드를 입력하면 된다. -C 옵션 뒤에는 보통 이메일 주소 같은걸 쓰면 되는데, github에서 사용하는 메일주소를 넣자.

그 다음은 엔터 3번만 누르면 된다. 첫번째는 개인키 파일명인데 디폴트로 하기 위해서 엔터, 두번째와 세번째는 공개키/개인키에 패스워드 설정하기인데 그걸 생략하기 위해서 공개키/개인키 방식을 쓰는거니 입력하지 말고 엔터를 눌러 생략하자.

ssh-keygen을 실행한 .ssh 폴더에 id_rsa(개인키 파일)과 id_rsa.pub(공개키 파일)이 만들어진다.

github.com에 공개키를 등록

github에 로그인해서 오른쪽 위에 아이콘을 클릭하면 설정(Settings)이 나온다. 선택해서 설정 화면으로 이동. SSH and GPG keys 메뉴를 클릭하고 마지막으로 New SSH key 버튼을 누른다.

github 설정 ssh

Title은 적당히 아무거나 넣고, Key 부분에 공개키인 id_rsa.pub 파일을 열어서(메모장으로 열면 됨) 내용을 전체 복사한 다음 붙여넣으면 된다.

github 설정 ssh 등록

이걸로 github에 공개키 등록은 끝났다.

VSCode에서 github 리파지토리 SSH로 연동

기존에 사용하던 리파지토리를 지우고 SSH 주소로 다시 등록한다.

github 리파지토리에서 SSH 주소를 복사한다.

Use SSH 링크를 누르면

github ssh 주소

SSH 접속 주소가 나온다. 오른쪽 옆에 아이콘을 눌러서 복사하자.

github ssh address

우선 기존 등록된 git remote add origin 커맨드로 등록한 https 주소를 해제하자.
VSCode에서 로컬 리파지토리 경로에 폴더에서 터미널을 열고, 아래 커맨드를 실행한다. (.git 폴더가 있는 폴더에서 커맨드를 실행하면 된다. 일반 윈도우 커맨드창에서 실행해도 됨)

그리고 아까 복사해 뒀던 SSH 주소로 재등록.

테스트

git fetch 를 실행하면 알려진 호스트로 등록할거냐라는 메시지가 뜨고 yes 를 입력하면 아이디/패스워드 없이 리파지토리에 접속 되는 것을 확인할 수 있다.

윈도우10 git 설치와 vscode 에서 github 리파지토리에 파일 올리기

윈도우10에서 git을 설치하고, vscode에서 작성한 코드를 github 리파지토리에 올리는 방법을 설명해 보겠다. git은 포터블판으로 설치한다.

이전글: 윈도우10 golang vscode 개발환경 구축

git 설치

git 다운로드 – https://git-scm.com/download/win

64비트 윈도우용 git 다운로드

다운로드 해보면 7z 실행파일인다. 실행해서 적당한 폴더를 선택해서 압축을 푼다. 여기선 c:\dev\git 에 압축을 풀겠다.

윈도우의 환경변수에 git 의 실행파일 디렉토리를 PATH 에 추가한다. 유저 환경변수나 시스템 환경변수, 둘 중 아무데나 추가해도 된다.

윈도우10에서 환경변수 화면으로 이동하는 방법
화면 왼쪽 아래에 윈도우 마크에서 마우스 오른쪽 클릭 -> 시스템 클릭 -> 오른쪽에 시스템 정보 클릭 -> 왼쪽에 시스템의 상세설정 -> 화면 아래쪽에 환경변수 버튼 클릭

PATH 항목을 편집해 git/cmd 디렉토리를 추가하자.

vscode git에 파일 올리기

git 실행파일을 환경변수 PATH 에 추가하고 vscode 를 실행해서 왼쪽 소스컨트롤 버튼을 눌러보면 아래 이미지와 같이 표시된다.
vscode 익스플로러에 열려 있는 폴더(go_work)가 git 리파지토리를 가지고 있지 않다는 내용이다. 리파지토리 초기화 버튼을 누르자.

리파지토리 초기화

아래와 같이 변경된 파일이 표시 된다.
플러스(+) 아이콘을 눌러서 변경된 파일을 스테이지에 올리자.

변경된 파일 표시

스테이지에 파일이 올라간 상태.
윗쪽 체크 아이콘을 눌러서 커밋하자.

변경된 파일 스테이지

커밋 메시지를 입력하라는데 적당히 입력하자.

커밋

메시지 입력하고 ENTER 키를 누르면 아래와 같이 에러가 난다.

에러 username

윈도우 커맨드창이든 vscode 에서 연 커맨드창(하단 TERMINAL 탭)이든 아래 내용을 입력해서 user.name과 user.email을 등록하자. github.com 에 등록된 유저명을 사용하는게 좋을 것이다.

vscode git user.name 입력
vscode 터미널에서 입력

다시 커밋해보면 에러가 안나오고 잘 된다.

github 에 올리기

github 에서 리파지토리를 만들자. 여기서 go_test 란 이름으로 만들었다.

github.com go_test 리파지토리

여기서 두가지 옵션이 있는데.
하나는 go_work 아래 go_test 폴더를 통째로 github 에 올리는 방법과, go_test 아래 test.go 파일만 올리는 방법이 있다. 리파지토리 하나에 여러 폴더를 올릴 경우에는 전자가 좋을것이고, 리파지토리 하나에 하나의 폴더(프로젝트)의 내용을 올리고 싶으면 후자가 좋다.

  • c:\dev\go_work 에서 커맨드창을 열어서 아래 명령을 실행한다. go_test 폴더를 github 의 go_test 리파지토리에 등록한다.
  • c:\dev\go_work 에 있는 .git 폴더를 지우고, go_test 폴더로 이동해서 git init 를 실행한 후, 아래 명령을 실행하면, test.go 파일을 go_test 리파지토리에 등록한다.

remote add github repo
test.go 파일만 올리는 후자의 방법으로 실행

커밋 되어 있는 내용을 푸쉬한다. 소스컨트롤에서 … 아이콘을 누르고, Push 를 선택.

vscode push

upstream 어쩌구 팝업이 나오면 일단 OK 를 누르면 된다. upstream 관련은 아래에서 설명.

upstream error

github 리파지토리에서 새로고침하면 test.go 파일이 등록되어 있는걸 확인할 수 있다.

github 리파지토리

no upstream branch

아래 명령을 한번 쳐주면 다음부터는 안나온다.

윈도우10 golang vscode 개발환경 구축

윈도우10에서 golang 개발을 위한 vscode 설치와 설정에 대해서 설명한다. 윈도우를 재설치하거나 다른 컴에도 그대로 옮겨서 사용할 수 있도록 인스톨러를 사용하지 않고 전부 포터블판으로 설치하겠다.

GO 설치

고 다운로드 페이지 – https://golang.org/dl/

고 다운로드 페이지
64비트 윈도우용 압축파일인 go1.14.2.windows-amd64.zip 파일을 다운로드 받아서 적당한 곳에 압축을 풀자. (이 글에서는 c:\dev\go 에 압축을 풀어둔 상태로 설명한다.)

윈도우의 환경변수에 go 의 실행파일 디렉토리를 PATH 에 추가한다. 유저 환경변수나 시스템 환경변수, 둘 중 아무데나 추가해도 된다.

윈도우10에서 환경변수 화면으로 이동하는 방법

화면 왼쪽 아래에 윈도우 마크에서 마우스 오른쪽 클릭 -> 시스템 클릭 -> 오른쪽에 시스템 정보 클릭 -> 왼쪽에 시스템의 상세설정 -> 화면 아래쪽에 환경변수 버튼 클릭

아래 이미지대로 PATH 항목을 편집해 go/bin 디렉토리를 추가하자.

윈도우 환경설정 패스

gopath 설정

gopath는 go 에서 사용하는 모든 외부 라이브러리를 보관하는 장소이다. go 코드를 작성하면서 import 하는 외부 라이브러리도 이곳에 다운로드해서 저장한다.
기본적으로 유저 폴더 아래에 go 폴더(c:\user\USER_ID\go)가 지정되는 것 같은데, 나는 유저 폴더 밑에 뭘 두는게 싫어서(다른 폴더가 많아서 찾아보기가 힘들어) c:\dev\go_path 로 지정하겠다.
마찬가지로 윈도우 환경변수에 gopath 란 이름으로 디렉토리 절대경로를 설정한다.

vscode 설치

vscode 다운로드 페이지 – https://code.visualstudio.com/download

vscode 다운로드
64비트 윈도우용 압축파일은 .zip 옆에 64 bit 링크를 클릭하면 다운로드 된다. 마찬가지로 적당한 곳에 압축을 풀자. (이 글에서는 c:\dev\vscode 에 압축을 풀어둔 상태로 설명한다.)

vscode를 실행하고 왼쪽에 확장기능에서 go 를 설치한다.

vscode 확장기능 go

vscode 확장기능 go 인스톨

인스톨이 끝나면 Ctrl + Shift + P 키를 눌러서 명령창을 열어 go install 로 검색해서 Go: Install/Update Tools 를 선택해서 나오는 모든걸 다 설치한다.
체크 클릭해서 전부 체크하고 오른쪽 OK 버튼을 눌러서 설치 시작.

vscode go install update tools

아래 콘솔창에 설치내용이 표시된다.
마지막에 All tools successfully installed. You are ready to Go :). 가 표시되면 완료.

vscode go install console

vscode go 인스톨 완료

여기까지하면 vscode 에서 고언어로 코딩할 수 있는 준비가 끝났다.

hello go 작성 테스트

c:\dev\go_work 경로로 소스를 저장할 디렉토리를 만들고, vscode 에서 이 폴더를 워크스페이스로 연다.
vscode 왼쪽 제일 윗 아이콘을 클릭해서 익스플로러를 열고, 익스플로러 빈 공간에서 마우스 오른쪽 버튼으로 메뉴를 열어서 Add Folder to Workspace 를 선택하고 go_work 디렉토리를 선택하면 된다.

익스프롤러에 go_work 가 표시될텐데 마우스 커서를 올리면 파일생성, 폴더생성, 새로고침, 폴더접기 아이콘이 표시된다.
폴더 생성하기로 go_test 폴더를 작성하자. c:/dev/go_work/go_test 경로로 디렉토리가 생성된다.
go_test 를 선택하고 파일생성 아이콘을 눌러서 test.go 란 이름으로 go 파일을 만들고 열어서 아래처럼 코딩을 한다.

test.go 코드

작성 후에 F5 버튼을 누르면 코드가 실행된다. 실행 결과는 아래 DEBUG CONSOLE 에 표시된다.

vscode test 코드 실행 결과

참고글: golang 설치 시작하기 – https://github.com/golang-kr/golang-doc/wiki/%EC%84%A4%EC%B9%98-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0
VSCode, 에디터 한글로 변경하기 – https://blog.azulpintor.io/entry/how-to-set-language-in-vscode-for-kor

윈도우10 vscode 에서 golang 프로젝트와 github 연동 리눅스용 실행 파일 빌드

윈도우10 환경에서 vscode 에서 github 저장소와 연동해 go 프로젝트를 만들고, 작성한 go 파일을 github 저장소에 커밋/푸시 하는 방법과 윈도우 환경에서 리눅스용 go 실행 파일을 만드는 방법에 대해 설명한다.

vscode 에서 github 에 파일 올리는 방법에 대해서 자세히 설명한 새로 글을 만들었다.
윈도우10 git 설치와 vscode 에서 github 리파지토리에 파일 올리기

iptables 의 애드온 xtables 에 사용할 CSV 파일을 만들기 위해 KRNIC 에서 다운로드 받은 CSV 파일을 db-ip.com 에서 제공하는 CSV 파일로 변환하는 java 코드를 작성했었다.
go 언어로 만들면 어디든 단독으로 실행 가능한 실행파일을 만들 수 있으니까 배포용으로 go 언어판을 작성 해 봤는데, 별거 없는 코드라 금방 만들 수 있네.
문제는 vscode 사용법. github 연동도 어떻게 할지 모르겠고 익숙치가 않으니 너무 어려웠다. 이클립스가 그리워…

vscode 에서 어떻게 github 연동 했는지 잊지 않도록 일단 메모를 해 둬야겠다.

vscode github 연동

1. github 에서 저장소를 생성한다.
2. vscode 에서 github 유저아이디 디렉토리를 만든다. gowork/github.com/USERID
3. vscode 커맨드 프롬프트에서 유저아이디 디렉토리로 이동 후, git clone https://github.com/USERID/저장소.git
유저아이디 디렉토리 아래 저장소 디렉토리가 생긴다.
4. vscode 커맨드 프롬프트에서 저장소 디렉토리로 이동. go mod init github.com/USERID/REPOSITORY
5. 저장소 디렉토리=go 프로젝트 디렉토리로 사용.
6. 파일을 추가/변경하거나 하면, vscode 왼쪽에 소스컨트롤 부분에 추가/변경한 파일 리스트가 나온다.
파일 오른쪽에 + (Stage Changes) 아이콘을 눌러 스테이지에 올리고, 상단에 체크 표시 아이콘을 눌러서 커밋. … 아이콘을 눌러서 Push 하면 된다.

vscode 소스 컨트롤

실제로 할때는 구글링하고 이것저것 만지면서 해서 이게 제대로 된 순서인지는 잘 모르겠다.
기억에 의존해서 한거라, 나중에 다른 go 프로젝트를 만들게 되면 이대로 해 보고 다시 수정하도록 하겠다.

golang linux / amd64 실행 파일 빌드

1. vscode 로 go 파일 있는 디렉토리에서 커맨드 프롬프트를 연다.
2. set GOOS=linux
3. set GOARCH=amd64
4. go build gofilename.go

go 파일이 있는 디렉토리에 실행파일이 생긴다.
방법은 간단한데 인터넷에서 검색해보면 온통 리눅스나 맥OS 환경을 기준으로 나와있어서 찾기가 어렵다.

윈도우에서 golang 1.14 개발 환경 구축

구글이 개발한 go라는 언어를 알고부터 항상 해 보고 싶었는데 VPS 서버도 생겼겠다 다시 한번 뭔가 만들어 봐야겠다는 생각이 들어서 다시 손을 대봤다.

go 와 vscode 를 포터블판으로 설치해서 개발환경 구축하는 방법에 대해 새로 글을 썼다.
윈도우10 golang vscode 개발환경 구축

go 설치

고 자체는 공식 사이트(https://golang.org/)에서 (윈도우의 경우는) MSI 버전으로 설치하면 PATH 설정도 전부 해 주니, 인스톨만 하면 간단.
수동으로 설치할 경우에는 PATH에 go/bin 디렉토리를 넣어주고, GOROOT는 go 디렉토리, GOPATH는 다운받은 팩키지 소스등을 넣어줄 곳이니 마음대로 지정하면 된다.
셋 다 중요하니 처음 고를 설치할 경우에는 그냥 MSI 인스톨러로 설치하자.

IDE 설치

IDE는 이클립스에 goclipse 플러그인을 설치 해 봤는데 현재 고버전(1.14)에서는 자동완성 기능이 더이상 작동하지 않는다.
아래 IDE 투표에서 1위를 자랑하는 비주얼 스튜디오 코드(VSCode) 를 설치하자.

2019 스택오버플로 개발 환경 투표
2019 스택오버플로 개발 환경 투표 결과. 출처:https://insights.stackoverflow.com/survey/2019#technology-_-most-popular-development-environments

https://code.visualstudio.com/
설치 버전이든 포터블 버전이든 아무거나 쓰면 된다.
설치 후 VSCode 디렉토리에 Code.exe 파일을 실행하자.

VSCode go 확장기능 설치

이미 설치 후라 인스톨 버튼 대신 언인스톨 버튼이 보인다.

빨간 박스로 표시한 왼쪽 아이콘을 누르고, 검색에 go 를 넣고, 아래에 go 0.13.1 Rich Go language… 를 선택하면, 오른쪽에 자세한 내용이 보이는데 인스톨 버튼을 누르자.

설치 후에 Ctrl + Shift + P 를 누르고 go install 로 검색하면, 나오는 모든 내용을 체크한 후에 OK 버튼을 누른다.
다 설치하는데 시간이 좀 걸린다…

Language Server

코딩할 때 꼭 필요한 자동완성 기능을 도와주는 것인데, 처음에는 무효화 되어 있다.
File -> Preferences -> Settings 에 들어가서 검색 gopls 을 하면 나오는 Go: Use Language Server 에 체크하면 사용할 수 있는데, 이걸 사용할 경우에 메소드 후보들이 빨리 표시 되는 반면에 그닥 정확히 필요한게 나오지는 않는 것 같다.
끄면 느린 대신에 딱 필요한것만 나오는 것 같고. 끈 경우와 켠 경우 다 써 봐야 할듯.

이상 Go 개발 환경 구축 끝.