문제
git push가 안 됨.
git-credential-osxkeychain 자꾸 입력하래
근데 비번도 자꾸 틀림...
remote: Support for password authentication was removed on August 13, 2021.
devwonny@devwonnyui-MacBookAir algorism % git push
Username for 'https://github.com': dev-wonny
Password for 'https://dev-wonny@github.com':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
원인
git-credential-osxkeychain은 HTTPS 프로토콜을 사용하는 Git 저장소에서 주로 사용.
GitHub는 보안 강화를 위해 HTTPS를 통한 비밀번호 인증을 중단하고,
대신 **Personal Access Token (PAT)**이나 SSH 키를 통해 인증하도록 변경
해결 방법
SSH는 공개 키 암호화를 사용하여 인증합니다.
SSH를 사용할 때는 공개 키와 개인 키 쌍을 사용하여 인증하며, git-credential-osxkeychain이 필요 없습니다.
SSH 인증 원리
내 컴퓨터에서 private, public key 만든 후
git hub한테 public key 전송해주면 됨(전송 안하고 github 사이트 가서 public key 복붙)
cat id_rsa.pub >> .ssh/authorized_keys
원래 이걸 git hub 서버에서 한다
git hub 서버에서 내가 보낸 public key를 authorized_keys로 등록한다
이후에, 내 컴퓨터가 github 서버에 접속하려면 성공하게 된다!
ssh 서버주소
효과
- SSH 키를 설정하면, 비밀번호를 입력하지 않고 GitHub 리포지토리에 접근
- SSH URL (git@github.com:username/repository.git)을 사용하여 Git 명령어를 실행, SSH 키를 통해 인증을 수행
해결 과정 코드
1. SSH key 생성
devwonny@devwonnyui-MacBookAir ~ % rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
기존 public key 삭제
devwonny@devwonnyui-MacBookAir ~ % ssh-keygen -t rsa -b 4096 -C "devwonny@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/devwonny/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/devwonny/.ssh/id_rsa
Your public key has been saved in /Users/devwonny/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:키키키키키키키 이메일@gmail.com
The key's randomart image is:
+---[RSA 4096]----+
생겨날거임
+----[SHA256]-----+
devwonny@devwonnyui-MacBookAir ~ % eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Agent pid 66838
Identity added: /Users/devwonny/.ssh/id_rsa (devwonny@gmail.com)
devwonny@devwonnyui-MacBookAir ~ % cat ~/.ssh/id_rsa.pub
ssh-rsa 로 시작하는 public key 보임
2. Github에 공개키 등록
cat ~/.ssh/id_rsa.pub
공개키 복사
GitHub에 공개 키 추가:
- GitHub 웹사이트에 로그인합니다.https://github.com/settings/keys
- 우측 상단의 프로필 아이콘을 클릭하고 Settings를 선택합니다.
- 왼쪽 메뉴에서 SSH and GPG keys를 클릭합니다.
- New SSH key 버튼을 클릭합니다.
- Title 필드에 키에 대한 설명을 입력하고, Key 필드에 복사한 공개 키를 붙여넣습니다.
- Add SSH key 버튼을 클릭하여 키를 추가합니다.
3. https -> git@github.com으로 바꿈
devwonny@devwonnyui-MacBookAir algorism % git remote -v
깃 연동된거 url 확인
origin https://github.com/dev-wonny/algorism.git (fetch)
origin https://github.com/dev-wonny/algorism.git (push)
깃 연동 주소 바꾸기
devwonny@devwonnyui-MacBookAir algorism % git remote set-url origin git@github.com:dev-wonny/algorism.git
다시 연동 url 확인
devwonny@devwonnyui-MacBookAir algorism % git remote -v
origin git@github.com:dev-wonny/algorism.git (fetch)
origin git@github.com:dev-wonny/algorism.git (push)
GitHub에 연결 테스트
devwonny@devwonnyui-MacBookAir algorism % ssh -T git@github.com
Hi dev-wonny! You've successfully authenticated, but GitHub does not provide shell access.
SSH?
Secure SHell
네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 명령을 실행할 수 있도록 하는 프로토콜
비밀번호 대신 공개 키 암호화를 사용, 높은 보안성을 제공
원격 로그인, 파일 전송, 포트 포워딩 등 다양한 용도로 사용
GitHub와 같은 서비스에서는 SSH를 사용하여 안전하게 리포지토리에 접근할 수 있다.
주요 용도
- 원격 로그인:
- 네트워크를 통해 다른 컴퓨터에 안전하게 로그인하고 터미널을 통해 명령어를 실행할 수 있습니다. 예를 들어, 서버에 접속하여 관리 작업을 수행할 때 사용됩니다.
- 파일 전송:
- scp (Secure Copy Protocol) 또는 sftp (Secure File Transfer Protocol)와 같은 명령어를 사용하여 파일을 안전하게 전송할 수 있습니다.
- 포트 포워딩:
- SSH 터널링을 통해 네트워크 포트를 안전하게 포워딩하고, 로컬과 원격 서버 간의 안전한 통신을 설정할 수 있습니다.
- SSH 키 인증:
- 비밀번호 대신 공개 키 암호화를 사용하여 인증을 수행합니다. 이는 보안성이 뛰어나며, Git과 같은 도구에서 사용됩니다.
SSH의 작동 방식
- 공개/개인 키 쌍:
- SSH는 공개 키와 개인 키 쌍을 사용하여 인증을 수행합니다.
- 공개 키는 서버에 저장되며, 개인 키는 클라이언트(사용자의 컴퓨터)에 저장됩니다.
- 로그인할 때, 클라이언트는 개인 키를 사용하여 서버에 인증을 요청
- 서버는 저장된 공개 키를 사용하여 인증을 확인합니다.
- 암호화:
- SSH는 데이터 전송 시 암호화를 사용하여 보안을 강화합니다. 이를 통해 네트워크를 통한 데이터 전송이 안전하게 보호됩니다.