github ssh 연결안됨

github

목록 보기
2/3

ssh -i 를 통해서 aws ec2 서버에 원격으로 접속한 이후, git clone을 통해 git 레포지토리를 받으려고 했다.

근데 ssh: connect to host github.com port 22: Connection timed out
가 뜨더라. 원인이 뭔지는 에러 메시지에 정확히 나와 있지는 않다.

그래서 ssh -T git@github.com를 통해 깃허브와의 ssh 연결을 확인했다.
(-T 옵션은 서버와 연결할 shell이나 터미널을 열지 말라는 것으로, 연결이 유효한지만 확인할 때 많이 쓴다.)

결과는
ssh: connect to host github.com port 22: Connection timed out로 똑같더라. 깃허브와 ssh 연결아 안 된다는 이야기다.

그래서 port22번은 ssh연결이 막히는 경우도 있으니 port443을 이용해보고
eval "$(ssh-agent -s)" 명령어를 통해 ssh 에이전트가 running하고 있는지도 확인해봤다.

그러나 결과는 똑같았다.

아, ssh가 안 되는구나 그럼 https로 연결해봐야겠다고 생각하고

git remote set-url origin https://github.com/offtheglass/kwang_restaurant.git

를 통해 https 주소로 remote 연결 주소를 바꾸고

git clone https://github.com/offtheglass/kwang_restaurant.git

을 시도했다.

결과는
Cloning into 'kwang_restaurant'...
fatal: unable to access 'https://github.com/offtheglass/kwang_restaurant.git/': Failed to connect to github.com port 443 after 135315 ms: Couldn't connect to server
였다.
ssh도 안 되고 https도 안 되는 걸 보면 ssh의 문제는 아닌 거 같았다.

우선 DNS 설정을 체크해보라고 그러더라.

ip link
cat /etc/resolv.conf
resolvectl status

을 통해 상태를 체크해봤는데
DNS 문제는 아닌 거 같더라(각 명령어가 무엇을 의미하는지 공부하기)

뭘 어떻게 했는지는 모르겠는데 git clone은 어찌저찌 해결됨.
이제 build를 해야되는데 java 18은 깔기가 어려워서 java 17을 깔았음. 근데 내 프로젝트 sdk가 java18인 거 같음. 그래서 빌드에 문제가 있는 거 같음. 프로젝트 sdk를 17로 바꾸고(이거 바꾸면 sql-driver 찾는 경로 17에도 추가해줘야함. https://velog.io/@off_the_glass/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%99%80-Mysql-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99 참고) 이 코드를 github에 push한 다음 merge를 다시 해주고 빌드를 다시 실행해보자.

일단 이번에 빌드가 안 되는 건 ec2가 t3.nano여서 용량이 부족해서였다.
ec2유형을 t3.micro로 바꾸고 실행하니깐 아까 뜨던 에러는 안 뜨는데 빌드는 또 안 된다. DB와의 연결이 안 되서 그런다. 이제 이걸 해결해보자.

빌드파일이 생겼는데 실행시키면 db랑 연결이 안 돼서 실행이 안 된다.
그래서 https://woojin.tistory.com/37?pidx=4#google_vignette 여기서 시키는대로 따라하고 있는데 우선 우분투 서버에 mysql설치까지는 했다.

그래서 sudo mysql -u root -p를 하니깐
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
가 뜨더라. 내 우분투 서버에서 mysql DB socket에 연결을 못 하고 있다는 뜻이라고 하더라.

문제를 찾았다. DB가 내 로컬에 있었는데 이거를 application.yml에서
url: localhost:8080 이런식으로 써놓으니까 원격 우분투 서버에서 내 로컬 DB를 찾을 수가 없었다. 그래서 우분투 서버가 있는 ec2에다가 mysql을 설치해줬다. 그러고 테이블 만들고 내 로컬에 있는 spring 프로젝트에서 application.yml에 ec2 공공 IP써주고 조정 몇 개 하니깐 내 로컬에서는 문제없이 돌아간다.

이제 ec2에서도 이게 문제없이 돌아가는지 확인해보자
ec2에서 빌드가 실패한다. DB를 같은 ec2에 올려놨더니 메모리가 부족해서 생기는 문제가 있다. 가상메모리를 사용해서 이 문제를 해결해줬다.
이후 test를 돌리는데 @rollback(False)를 해서 id가 중복되서 생기는 문제같다. rollback 주석 쳐줬는데도 에러나서 일단은 테스트 다 주석처리하고 빌드하니깐 빌드가 되긴 한다.

0개의 댓글