Type Here to Get Search Results !

github Support for password authentication was removed - 에러 처리하기 및 기타 사용법

이 글에서는 github에 git 명령으로 push/add/commit하는 방법에 대해서 설명합니다. 

  • git push 에러 및 해결방법
  • git 커맨드 라인 명령으로 파일 추가하기
  • git 으로 수정한 코드 원복
  • github에서 리파지토리 생성하고 로컬 디렉토리 초기화 하기
  • git 명령을 이용해서 github 인증 토큰 저장하기
github password 인증 에러 해결하기 썸네일


git push 에러 및 해결방법


github를 오랜만에 사용하니 git push 시에 다음과 같은 에러가 발생하였습니다. 

$ git push -u origin main
Username for 'https://github.com': lsw0075@gmail.com
Password for 'https://lsw0075@gmail.com@github.com':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: https://github.com/lswhh/flask.git/에 대한 인증이 실패하였습니다
관련하여 웹을 찾아보니, 비밀번호 인증은 이미 2021년 8월 13일에 종료되었고, 인증 토큰을 이용한 방법을 사용한다는 에러입니다. 

그래서, 아래 사이트에서 인증 토큰을 받아야합니다. 

그런데, classic과 new가 있습니다. 일단 new로 받았는데 좀 귀찮게 권한을 하나하나 설정해야합니다. 

new로 진행해 보았습니다. 



$ git push -u origin main
Username for 'https://github.com': github_pat_....

Password for 'https://github_pat_....@github.com':

오브젝트 나열하는 중: 3, 완료.

오브젝트 개수 세는 중: 100% (3/3), 완료.

오브젝트 쓰는 중: 100% (3/3), 213 바이트 | 106.00 KiB/s, 완료.

Total 3 (delta 0), reused 0 (delta 0)

To https://github.com/lswhh/flask.git

 * [new branch]      main -> main

'main' 브랜치가 리모트의 'main' 브랜치를 ('origin'에서) 따라가도록 설정되었습니다.

그냥 실수로 Username에 인증 토큰을 넣었는데 그렇게 해도 되나봅니다. 

New Fine-grained Personal Access Token (github.com)


git 커맨드 라인 명령으로 파일 추가하기


git 커맨드라인으로 파일을 추가하기위해서 git add를 해야합니다. 그 후 commit을 하고 push를 해주면 github에 파일이 추가됩니다. 

lswhh@DESKTOP-NJJS3PP:~/flask$ ls

README.md  app.py  downloads  youtube_sub_dl

lswhh@DESKTOP-NJJS3PP:~/flask$ git add .

lswhh@DESKTOP-NJJS3PP:~/flask$ git commit -m"add existing file"

[main a896b30] add existing file

 5 files changed, 150 insertions(+)

 create mode 100644 app.py

 create mode 100644 youtube_sub_dl/__init__.py

 create mode 100644 youtube_sub_dl/__pycache__/__init__.cpython-38.pyc

 create mode 100644 youtube_sub_dl/templates/index.html

 create mode 100644 youtube_sub_dl/templates/subtitles.html

lswhh@DESKTOP-NJJS3PP:~/flask$ git push origin

Username for 'https://github.com': lsw0075

Password for 'https://lsw0075@github.com':

오브젝트 나열하는 중: 11, 완료.

오브젝트 개수 세는 중: 100% (11/11), 완료.

Delta compression using up to 4 threads

오브젝트 압축하는 중: 100% (10/10), 완료.

오브젝트 쓰는 중: 100% (10/10), 4.05 KiB | 2.02 MiB/s, 완료.

Total 10 (delta 0), reused 0 (delta 0)

To https://github.com/lswhh/flask.git

   a9bf240..a896b30  main -> main


git 으로 수정한 코드 원복


마지막으로 코드를 잘못 수정하여 다시 원복하고 싶어서 다음의 명령으로 수정한 코드를 원복하였습니다. 

$ git reset --hard

HEAD의 현재 위치는 a896b30입니다 add existing file

github에서 리파지토리 생성하고 로컬 디렉토리 초기화 하기


github에서는 신규 리파지토리를 생성하면 아래와 같이 안내합니다. 

새로운 디렉토리를 초기화 하고 해당 디렉토리에 README.md 파일을 생성하고 커밋 하고 push 하는 방법을 명령어로 안내해 주고 있습니다. 아래 명령을 따라서 하기만 하면 모든 절차가 완료됩니다.

…or create a new repository on the command line

echo "# yt-dlp-python" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/lswhh/yt-dlp-python.git
git push -u origin main

…or push an existing repository from the command line

git remote add origin https://github.com/lswhh/yt-dlp-python.git
git branch -M main
git push -u origin main

git 명령을 이용해서 github 인증 토큰 저장하기


git 명령을 이용해서 git과 github 인증 토큰을 저장하는 방법은 다음과 같다.  

저장하는 명령을 수행 후 한번 인증하고 나면 그 다음 부터는 인증 없이 push 할 수 있다.

  • git config --global credential.helper <옵션>
  • 옵션
    •  store
      • 이메일/비밀번호는 파일로 저장된다. 
      • ~/.git-credentials 파일안에 기록된다.
      • 저장되는 경로는 다음의 옵션으로 변경 할 수 있다. 
      • git config --global credential.helper 'store --file <경로>'
    • cashe
      • 이메일/비밀번호를 메모리에 보관하고, 일정 시간 동안 유지한다.
      • default 15분 동안 유지하며 옵션으로 변경가능하다. 이때 값은 초 단위이다
      • git config --global credential.helper 'cache --timeout 초'