본문 바로가기

부스트캠프 AI Tech 3기/프로젝트 : P-stage

[Day22] key파일로 SSH 서버 VS code에 연결 & Github

1.서버를 열면 key 파일이 download 폴더에 다운받아진다.

이 key를 원하는 폴더나 C:\Users\사용자이름\.ssh 폴더로 옮겨준다.

 

2. windows terminal 을 관리자로 열고 ubuntu로 켜준다.

cd와 ls, pwd 명령어로 mnt 아래에 있는 C:\Users\사용자이름\.ssh 로 가서

ls -l

하면

 

이렇게 권한이 rwxrwxrwx인 것을 확인할 수 있는데, key파일은 보호되야하기 때문에 권한을 변경해주어야 한다.

sudo mount -t drvfs C: /mnt/c -o metadata

이렇게 해서 

이렇게 권한이 rw-------가 나오면 성공이다.

안 된다면, 이게 windows환경이어서 안 되는 것이기 때문에 ubuntu 서버에서 옮겨서 권한을 바꾸어준 후에 다시 windows로 옮기면 된다.

 

2-1 ubuntu 서버에서 옮겨서 권한을 바꾸어준 후에 다시 windows로 옮기기

ubuntu창을 windows terminal에서 새로 열어서

cd ~
cd /home/

를 통해 ubuntu 서버의 home 폴더로 이동한다.

 

 cp /mnt/c/Users/사용자이름/.ssh/key /home/key

를 해서 password를 치라고 하면 되지만

cp: cannot create regular file '/home/key': Permission denied

이렇게 에러가 뜰 수도 있다 그러면 앞에 sudo를 붙혀서

sudo cp /mnt/c/Users/사용자이름/.ssh/key /home/key

이렇게 하면 아까 다운받은 key파일을 ubuntu로 복사한다.

 /mnt/c/Users/사용자이름/.ssh/key은 1번에서 다운받았던 경로로 설정해주면된다.

이렇게 key가 복사된 것을 볼 수 있다.

chmod 0600 ./key

을 통해서 권한을 바꾸는데 또 안되면 역시

sudo chmod 0600 ./key

sudo를 붙혀서 해본다.

그럼 이렇게 권한이 변경된 것을 볼 수 있다.

자꾸 변경이 안되면 터미널을 재시작하면 된다.

 

원래 폴더 /mnt/c/Uers/사용자이름/.ssh에 있는 key파일을 삭제해준다. 안그러면 cp: cannot open '/home/key' for reading: Permission denied

에러가 난다.

 

이제 copy한다.

sudo cp /home/key /mnt/c/Users/사용자 이름/.ssh/key

다시 ubuntu에서 windows 폴더로 key를 옮겨준다.

 

3.

AI stages에서 할당받은 서버 정보에서 

저 뒷부분을 복사해서 windows terminal의 ubuntu에 이어서 넣으면

중간에 한 번 yes라고 치면 password를 입력하라고 하고,

ubuntu의 password를 입력하면 허가가 거부된다.

그럼 앞에서 sudo를 붙혀서 다시 하면 permission denied 는 해결된다.

exit

으로 나오면 다시 원래 터미널로 돌아온다.

 

정말 다 안되면 https://studyforus.tistory.com/90

4. VS code를 연다.

F1을 눌러 remote SSH안뜨면

왼쪽메뉴의 extension을 들어간다.

그 다음 ssh를 검색해서

이걸 install한다.

 

다시 f1을 눌러서 뜨는 검색에 ssh를 검색하면

여기에서 2번째 있는 Remote-SSH:★★★★★Add New SSH Host★★★★★를 눌러

3번에서 복사해 두었던 ssh~ 포트번호까지를 붙혀넣는다.

 

이건 잘 모르겠는데 AI stages에서는 Linux를 선택하면 된다. 

 

Are you sure you want to continue->continue해주고나서 5번으로 가면 굳

4-2 에러

창이 뜨면서 visual studio code could not establish connection to 주소

이런 메세지가 뜨거나 밑의 사진처럼 password를 입력하라고 하면 뭔가 잘못된 것이다.

1. connect to host를 누르지 말고 Add New SSH Host를 해야한다.

그전 서버는 닫혔기 때문에 connet to host하면 없다 그리고 전 서버 ip주소가 뜨니까 이건 금방 알아챌 수 있다.

2. .ssh 폴더에 있는 config파일과 known_hosts라는 파일을 지운다

그 전 서버에서 사용하던 설정이 남아 있기 때문이라고 한다.

3. password를 입력하라는 것은 key가 제대로 연결되어 있지 않기 때문이다. 나같은 경우는 config의 identityFile 주소가 슬래쉬냐 역슬래쉬냐에 따라서 안되었었다. 자세한 것은 밑에 5번을 보면 된다.

5. config

그럼 config파일이 뜨는데

여기에서 IdentifyFile의 주소가 상대주소가 아닌 아까 key위치의 절대주소로 입력해준다.

/인지 위의 사진처럼 역슬래쉬 인지 잘 살펴보아야한다. 헷갈리면 그냥

 

이렇게 copy path기능을 쓰자

이제 자동으로 연결되고 왼쪽 밑에 초록색으로

가 뜨면 SSH 연결 끝

 

6. Github 연결

vscode의 terminal에

가져오려는 github에서 code를 클릭해서 나오는 https 주소를 복사한다.

를 f1에서 git clone

에 복사해 둔 문자열을 넣어주면 된다.

 

에러가 난다면 windows terminal의 ubuntu에서 (vscode의 terminal에 넣어주면 안 되었었다.)

git config --global user.name "깃허브아이디"
git config --global user.email "깃허브이메일"

로 아이디와 이메일을 넣어주고

cat ~/.gitconfig​

로 확인하면

잘 들어가있는 것을 확인할 수 있다.

다시 git clone을 시도하면 이제 갓허브와 연동까지 된다.

 

깃허브와 서버가 한 자리에!!