본문 바로가기
클라우드

[GCP] 빅쿼리와 연동한 코랩 파일을 ssh로 깃허브 업로드 실패..

by 포 키 2023. 11. 1.
728x90

먼저 이글을 작성할 생각은 없었지만, 생각보다 쉽지 않아서 작성해야겠다는 생각이 들었다.

왜 굳이 이 방법으로 업로드 하려했냐면 이 방법으로 하는 것도 가능하지 않을까 해서 도전해보고 싶었다!

내가 찾은 방법을 작성해보려 한다.

참고로 나는 이것저것 다 해봤는데도 실패했다..

혹시라도 해결 방법을 아는 사람은 댓글로 참고 링크 부탁드려요!

 

1. 구글 드라이브랑 연동하기

나는 코랩과 빅쿼리를 연동해서 사용했기에 구글 드라이브와 연동을 시키지 않고 사용했다.

그래서 자꾸 파일이 없는 경로만 불러올 수 있었기에 구글 드라이브와 먼저 연동을 시켜야 했다.

구글 드라이브와 연동을 시킨 후 코랩 파일이 있는 경로로 이동해준다.

%cd /content/drive/MyDrive/Colab Notebooks

 

나는 여기서 파일을 그대로 업로드 하기보다는 폴더에 넣어서 그 폴더를 업로드하고 싶었다.

그래서 폴더에 파일을 넣어주는 과정을 진행해야한다.

!mkdir 데이터분석
!mv '파일명.ipynb' 데이터분석/

 

파일을 이동시키는 과정까지 마쳤으면, 이 파일을 구글 클라우드에 연동시키기 위한 준비가 필요하다.

구글 클라우드에 프로젝트와 인스턴스까지 연동을 시켜주자

!curl https://sdk.cloud.google.com | bash
!gcloud init

 

위의 코드를 실행시키면 또 구글 클라우드와 연동을 위해 계속 커멘드가 나올 것이다.

거기에 맞게 작업을 또 해줘야 한다.

연결이 완료된 상태라면 ssh키 인증을 해줘야 한다.

!apt-get install openssh-client
!ssh-keygen -t rsa -f ~/.ssh/id_rsa
!cat ~/.ssh/id_rsa.pub
!echo "ssh 키값" >> ~/.ssh/authorized_keys
!ssh username@인스턴스 내부 ip주소

 

 

2. 깃허브 커밋 남기기

여기서 cat을 통해 나온 ssh 키값은 복사해두고 ssh가 모두 연결이 되면 echo 뒤에 ssh 키값을 붙여넣으면 된다.

 

이후, github에 연동된 걸 기반으로 터미널 창에서 다음 커맨드를 사용해서 업로드 해주면 끝이다!

 

git add .
git commit -m 'updated'
git push

 

 

문제점!!

여기서 문제가 발생했다.

나는 저렇게했을 때 연결되지 않았다 ㅠㅠㅠㅠㅠ

그래서 다른 방법을 찾으려고 열심히 찾았는데 이 방법 역시 안됐다.

결국은 더 붙들고 있을 이유는 없을 것 같아서 그냥 내가 직접 올리기로 했다.

 

혹시 위의 방법으로 안된 사람들은 아래의 코드로 한번 코랩에서 실행해보길 바란다.

나는 타임아웃이 자꾸 떠서 포기했다..

 

import paramiko

host = '내부 ip'
username = '유저명'

ssh = paramiko.SSHClient()

# ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(host, username=username)

ssh.close()
728x90