Development/Git

Git ERROR: You're using an RSA key with SHA-1, which is no longer allowed [Solved]

고고마코드 2022. 8. 22. 14:30
반응형

오류

ERROR: You're using an RSA key with SHA-1, which is no longer allowed. 
Please use a newer client or a different key type.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.

새로운 환경에서 ssh-keygen을 사용할 수 없는 상황이라 온라인으로 RSA 키를 생성하고 GitHub Push 했는데 오류가 발생했습니다.


원인

공식 블로그(Improving Git protocol security on GitHub | The GitHub Blog)에 따르면 이제는 SHA-1 서명을 사용하는 RSA 키는 사용할 수 없다고 합니다.

2021-11-02 이전에 생성한 SHA-1 서명만 사용할 수 있고 이제부터는 RSA키는 SHA-2 서명을 사용해야 합니다.

공식 블로그


해결

RSA키를 사용하려면 SHA-2 서명으로 진행할 수 있습니다.

또는

ECDSA, Ed25519 암호화를 사용할 수 있습니다.

커맨드로 키를 생성하는 방법과 온라인으로 키를 생성하는 방법을 나누어서 설명하겠습니다.

ssh-keygen으로 key 생성

$ ssh-keygen -t rsa -b 4096
$ ssh-keygen -t ecdsa -b 521
$ ssh-keygen -t ed25519

.ssh 폴더로 이동 (보통 루트 경로에 있음)

$ cat id_rsa
$ cat id_rsa.pub

$ cat id_ecdsa
$ cat id_ecdsa.pub

$ cat id_ed25519
$ cat id_ed25519.pub

.pub 가 public key 이고

.pub 없는 것이 private key 입니다.

private key 를 서버에 저장하고 public key 를 외부에서 사용하면 됩니다.

온라인으로 key 생성

만약 ssh-keygen 을 사용할 수 없는 환경이거나 다른 이유로 커맨드를 사용할 수 없다면 온라인으로 키를 만들 수 있습니다.

Generate SSH Key Pair Online (wpoven.com)

원하는 암호화의 Type과 Length를 설정하고 키를 생성하세요.

Private Key 를 복사해 각 암호화 타입에 맞게 id_rsa, id_ecdsa, id_ed25519 로 파일을 생성하고

서버의 .ssh 폴더 내에 저장합니다. (만약 .ssh 폴더가 없다면 루트에 .ssh 폴더를 생성 후 저장하세요.)

Public Key 를 복사해 외부에서 사용하면 됩니다. (예를 들어 GitHub SSH Key 등록)

주의할 점은 해당 화면에서는 다시는 볼 수 없으니 해당 키를 어딘가에 보관해야 한다는 점입니다.


참고자료

  1. exerror.com

  2. github.blog

  3. wpoven.com


반응형