본문 바로가기

카테고리 없음

SSH KEY, git-credential-osxkeychain 실패

문제

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-osxkeychainHTTPS 프로토콜을 사용하는 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를 사용하여 안전하게 리포지토리에 접근할 수 있다.

 

주요 용도

  1. 원격 로그인:
    • 네트워크를 통해 다른 컴퓨터에 안전하게 로그인하고 터미널을 통해 명령어를 실행할 수 있습니다. 예를 들어, 서버에 접속하여 관리 작업을 수행할 때 사용됩니다.
  2. 파일 전송:
    • scp (Secure Copy Protocol) 또는 sftp (Secure File Transfer Protocol)와 같은 명령어를 사용하여 파일을 안전하게 전송할 수 있습니다.
  3. 포트 포워딩:
    • SSH 터널링을 통해 네트워크 포트를 안전하게 포워딩하고, 로컬과 원격 서버 간의 안전한 통신을 설정할 수 있습니다.
  4. SSH 키 인증:
    • 비밀번호 대신 공개 키 암호화를 사용하여 인증을 수행합니다. 이는 보안성이 뛰어나며, Git과 같은 도구에서 사용됩니다.

 

SSH의 작동 방식

  1. 공개/개인 키 쌍:
    • SSH는 공개 키와 개인 키 쌍을 사용하여 인증을 수행합니다.
    • 공개 키는 서버에 저장되며, 개인 키는 클라이언트(사용자의 컴퓨터)에 저장됩니다.
    • 로그인할 때, 클라이언트는 개인 키를 사용하여 서버에 인증을 요청
    • 서버는 저장된 공개 키를 사용하여 인증을 확인합니다.
  2. 암호화:
    • SSH는 데이터 전송 시 암호화를 사용하여 보안을 강화합니다. 이를 통해 네트워크를 통한 데이터 전송이 안전하게 보호됩니다.