github : 지원되는 인증 방법이 없습니다.


98

나는 github를 사용하고 과거에 내 노트북에 성공적으로 파일을 추가하고 동기화했습니다.

최근에 나는 실행 후 " PuTTY 치명적 오류 : 연결 끊김 : 지원되는 인증 방법 없음 "을 받기 시작했습니다 .

git pull origin master (또는 push)

하나

ssh git@github.com에서 올바른 응답을 반환합니다. 오류 : 안녕하세요 사용자 이름! 성공적으로 인증되었지만 GitHub는 github.com에 대한 셸 액세스 연결을 제공하지 않습니다.

github에서 파헤쳐 본 후 나는이 소포를 발견했습니다.

지원되는 인증 방법 이 없습니다. ssh가 작동하지 않는 경우 git에서 ssh를 사용하는 클라이언트를 찾는 데 사용하는 환경 변수 GIT_SSH를 알고 있어야합니다. git install은 인증을 수행하기 위해 plink.exe (GIT_SSH를 통해)를 사용할 수 있습니다. 그렇다면 pageant.exe가 실행 중이고 github 용으로 생성 한 키가로드되었는지 확인하십시오. 이것은 plink.exe에 대한 키를 제공합니다. 그것 없이는 위의 오류가 발생합니다.

plink.exe 또는 peagant.exe가 무엇인지 확실하지 않습니다. ssh git@github.com이 올바르게 인증하는 것처럼 보이기 때문에 여기에서 가장 좋은 솔루션이 무엇인지 궁금합니다. 필요한.

답변:


101

홈 디렉토리에 ".profile"이라는 파일을 만들 수 있습니다. 저에게는 C : \ Users \ [user]입니다.

해당 파일 안에 다음 코드 줄을 넣으십시오.

GIT_SSH="/usr/bin/ssh.exe"

이렇게하면 GIT_SSH 환경 변수가 git에 포함 된 ssh 클라이언트를 사용하도록 설정됩니다.

.profile 스크립트는 Git Bash 명령 줄을 시작할 때 실행됩니다.

편집 : 이것은 내 .profile입니다. git 명령 프롬프트를 처음 시작할 때 암호를 묻는 메시지가 표시되고 컴퓨터를 재부팅 할 때까지 그때부터 암호를 기억합니다. 매우 편리하여 무언가를 할 때마다 암호를 계속 입력 할 필요가 없습니다.

SSH_ENV="$HOME/.ssh/environment"
GIT_SSH="/usr/bin/ssh.exe"

function start_agent {
echo "Initializing new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cygwin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi

8
+1 git의 ssh 필요에 대해 Putty / Pageant를 사용할 때 문제가 발생했습니다. 내장 된 ssh 클라이언트를 사용하는 것은 놀라운 일입니다. 이것은 ssh git@github.com을 직접 실행하면 제대로 반환되지만 git이 구성된 도구 (Putty / Pageant)를 사용하도록 허용하면 그렇지 않은 이유를 설명합니다.
enriquein 2010 년

14
저에게는 GIT_SSH = "/ bin / ssh.exe"(Windows)입니다. 감사!
Martin Konicek 2011 년

1
@Justin mingw32 프롬프트를 사용하고 있습니까?
Rex Morgan

2
Windows 7에서 Cygwin에서 사용, 위의 대답은 일을하지만 난에 필요 GIT_SSH.bash_profile하지.profile
게이브

2
Git Bash를 사용하는 Windows 10의 경우GIT_SSH="D:\Program Files\Git\usr\bin\ssh.exe"
PaulH

31

TortoiseGit 사용

TortoiseGit> 설정 ... 네트워크 ... SSH 클라이언트 : C:\Program Files\Git\usr\bin\ssh.exe

내 위치는 다릅니다. 한 컴퓨터에서C:\Program Files (x86)\Git\bin\ssh.exe

거북이


5
감사. 이것은 효과가 있었다. 참고 : 주어진 컴퓨터에서 'ssh.exe'가 정확히 어디에 있는지 찾아야 할 수도 있습니다. 나를 위해 그것은 C : \ Program Files \ Git \ usr \ bin \ ssh.exe (아마도 오래된 시스템에서)
페스토 파 구스

10

"... plink.exe 또는 peagant.exe가 무엇인지 잘 모르겠습니다 ..."

당신이 묻기 때문에 : plink & pageant는 Linux & Windows를 지원하고 Windows에서 완전히 지배적 인 SSH 구현 인 PuTTY 제품군의 일부입니다.

SSH

SSH (Secure Shell)는 데이터 통신 보안을위한 암호화 네트워크 프로토콜입니다. 클라이언트-서버 아키텍처에서 보안되지 않은 네트워크를 통해 보안 채널을 설정하여 SSH 클라이언트 애플리케이션을 SSH 서버와 연결합니다. 일반적인 응용 프로그램에는 원격 명령 줄 로그인, 원격 명령 실행이 포함되지만 모든 네트워크 서비스는 SSH로 보호 할 수 있습니다.

텔넷을 사용한 적이 있다면 그와 비슷하지만 (더 안전합니다) Linux 호스트의 bash 쉘 (명령 줄)에 원격으로 액세스 할 수 있습니다.

퍼티

PuTTY는 무료 오픈 소스 터미널 에뮬레이터, 직렬 콘솔 및 네트워크 파일 전송 애플리케이션입니다. SCP, SSH, Telnet, rlogin 등 여러 네트워크 프로토콜을 지원합니다.

Windows에서는 SSH 프로토콜 (위)에 따라 Linux 호스트의 명령 줄에 원격으로 액세스하기위한 주요 소프트웨어입니다. Windows에서 .exe 확장자는 실행 파일 용입니다. 따라서 plink.exe 및 pageant.exe에 대한 참고 사항은 Linux 사용자에게는 적용되지 않을 것입니다 . PuTTY에는 다음이 포함됩니다.

Plink : PuTTY 백엔드에 대한 명령 줄 인터페이스

Pageant : PuTTY, PSCP 및 Plink 용 SSH 인증 에이전트

출처 ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )

공개 키가 원격 끝에 있고 일치하는 개인 키가 로컬 끝에 있으면 암호를 더 이상 입력 할 필요가 없습니다. 추가 보안을 위해 개인 키 자체를 암호로 잠글 수 있습니다.

따라서 github는 Linux 시스템에서 호스팅되며 SSH를 사용하여 연결을 보호합니다. SSH는 암호 또는 키로 인증하고 많은 호스트 (github?)는 키로 만 인증합니다. 설정은 분명히 키로 인증을 시도하고 있습니다. 키와 호스트는 일대일이 아닙니다. 동일한 호스트에 대해 두 개의 키를 가질 수 있고 동일한 키에 대해 두 개의 호스트를 가질 수 있으므로 관리해야합니다. Windows를 사용하는 경우 plink를 통해 SSH 세션에 액세스 할 수 있으며 키는 Pageant에서 관리 할 수 ​​있습니다.

Pageant를로드 할 때마다 필요한 키를 가져옵니다. "키 가져 오기"라는 가이드를 따랐고 작동했지만 지금은 작동하지 않는 경우 9 장 : 인증을 위해 Pageant 사용을 참조하십시오 .

Windows를 사용하는 경우 마지막 팁 : 다양한 도구에 의해 설치된 PuTTY 제품군의 여러 인스턴스가있을 수 있습니다. 예를 들어 TortoiseGit은 자체 설치합니다.


8

GIT_SSHTortoiseSVN 버전을 가리키고 있었기 때문에이 문제가 발생했습니다 Plink.exe. TortoiseGit 버전을 가리 키도록 변경하고 cmd를 다시 시작하면 작동했습니다.

(에있는 내가 정확히 기억하지 수 있지만, TortoiseSVN이 버전은 32 비트 버전되었을 수 있습니다, 그리고 TortoiseGit 버전이 64 비트를했다 Program Files,하지 Program Files (x86)).

GIT_SSH환경 변수를 다시 확인하십시오 .

나는 정상과 함께 git을 사용하는 것을 선호합니다 cmd.exe(물론 Console2에서)


당신은 정확하게 기억합니다. GIT_SSH가 TortoisePlink.exe의 32 비트 TortoiseSVN 버전을 가리키는 동일한 문제가 발생했습니다. TortoiseGit 버전으로 이동하면 작동했습니다.
nitwit 2011

6

Windows의 TortoiseGit 사용자

원래는 SSH 리포지토리 URL 을 사용하여 대부분의 Github / Bitbucket 리포지토리를 설정 했습니다. 원래는 TortoiseGit이 모든 단일 작업에 대해 암호를 묻는 메시지를 표시하지 않도록하는 유일한 편리한 방법이었습니다.

그러나 TortoiseGit을 이런 식으로 설정하는 것은 항상 머리를 당기는 고통이었습니다. 기본 설치 옵션이 작동하지 않는 것 같았 기 때문에 올바르게 설정 하는 데 시간이 걸렸 습니다 (2016 년에도 마찬가지입니다!).

그러나 TortoiseGit은 이제 HTTPS에 대한 더 나은 암호 관리 기능을 제공하며 Github는 실제로 가능하면 HTTPS URL 사용을 권장 합니다.

SSH URL : git@github.com:User/repo-name.git

HTTPS URL : https://github.com/User/repo-name.git

HTTPS의 이점은 다음과 같습니다.

  • SSH 키를 관리하거나 생성하지 않음
  • pageant.exe지속적으로 실행할 필요가 없습니다 (시작할 때마다 암호를 요청 함).
  • 호주의 TortoiseGit을 사용하면 HTTPS를 통한 클론이 SSH보다 5 ~ 10 배 빠릅니다.

+ '자식 설정 --global http.sslVerify 거짓'
마이크

5

Pageant를 사용 중이고 PC를 재부팅 한 후 (또는 그렇지 않으면 Pageant를 닫았다가 다시 연 후) 질문에 설명 된 오류가 표시되는 경우 :

이 오류는 Pageant가 GitHub SSH 키를 적극적으로로드하지 않았기 때문에 발생할 수 있습니다. 기본적으로 Pageant는 시작할 때 이전 세션에서 키를 자동으로로드하지 않습니다.

키를로드하려면 :

  1. Pageant를 엽니 다. (Windows에서 Pageant가 실행 중이면 시스템 트레이에 아이콘이 표시됩니다. 두 번 클릭하십시오.)
  2. 키 추가 버튼을 클릭하고 기존 GitHub SSH 키를 계속 추가합니다.

앞으로이 문제를 방지하기 위해 Pageant가 시작될 때 키를 자동으로로드하도록 구성 할 수 있습니다. (키가 암호로 보호 된 경우 Pageant는 자동으로 암호를 입력하라는 메시지를 표시합니다.)

이를 수행하는 단계 (Windows가 시작될 때 실행되도록 Pageant를 이미 구성했다고 가정) :

  1. Windows가 시작될 때 Pageant를 실행하기 위해 Windows에서 사용하는 바로 가기를 찾습니다. (시작> 실행>으로 열 수있는 시작 폴더에있을 수 있습니다. shell:startup)
  2. 바로 가기의 속성 대화 상자에서 SSH 키 파일의 전체 경로와 파일 이름을 "대상"필드에 추가합니다.

참조 및 전체 세부 정보 : http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html


4

내 문제는 내 github 사용자 이름을 사용하려고한다는 것입니다. 분명히 Github를 사용할 때 (또는 Git일까요?) 키 기반 인증을 사용하는 경우 사용자 이름을 git.

사용자 이름이 왜 필요한지 잘 모르겠습니다. 더 많은 지식이있는 사람이 설명 할 수 있습니까?


개인 저장소를 복제 할 때 git@github.com : username / Repository.git과 같은 URL이됩니다. 나는 그것의 뒤에 과학에 대해 완전히 확신하지 못하지만 git 은 모든 Github 계정의 일반적인 사용자 이름 인 것 같습니다
Winter

1
PLink / Pageant가 제대로 작동합니다. 이것은 실제 문제이며 같은 것을 사용 ssh://git@github.com/myname/repo.git하면 잘 작동합니다. 잘 하셨어요. 그 이유는 보안을 잠그는 것이라고 생각합니다. 'git'사용자는 로그인이 비활성화되어 있으므로 아무도 그런 식으로 시스템에 침입 할 수 없습니다. 그들은 Github에서 심지어 이야기에 유효한 키를 가지고 있고, 그들은 유효한 키가 있으면, 그들에 로그인하는 사용자에 대해 그것을 일치시킬 수 있습니다.
ChokesMcGee

2

git 버전 1.8.3.msysgit.0을 사용하여 Windows 용 Github를 실행하는 Windows 7 컴퓨터에서. 내 시스템 환경 변수 GIT_SSH를 C : \ Program Files (x86) \ Git \ bin \ ssh.exe로 업데이트하는 것이 트릭을 수행하는 것 같았습니다. 이것은 또한 OpenShift의 git repo에 문의하는 문제를 해결했습니다.


2

Windows 8에서 나를 위해 일했습니다. GIT_SSH 변수가 plink.exe를 가리키고 있었고 시스템 설정에서 ssh 바이너리를 가리 키도록 변경했으며 문제가 해결되었습니다. ssh의 전체 경로를 찾으려면 다음을 실행하십시오.

where ssh

2

이 문제를 해결하기 위해 이것이 내가 한 일이었습니다.

Windows 10에서 Git Bash를 사용하고있었습니다.

Pageant를 시작하고 Add Key를 누르고

여기에 이미지 설명 입력

C : \ Users \ username \ .ssh 폴더로 이동하여 내 키를 선택했습니다.

여기에 이미지 설명 입력

그런 다음 git push를 시도했는데 이번에는 작동했습니다.


Windows PC를 재부팅 할 때마다이 작업을 수행해야합니다. Pageant를 시작 폴더에 개인 키 파일에 대한 올바른 명령 줄 인수가 포함 된 바로 가기로 넣을 수 있지만 암호를 설정 한 경우 개인 키를 만들 때 도구 트레이에서 Pageant 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "키 추가"를 선택한 다음 재부팅 할 때마다 입력해야합니다.
webbje


1

이 같은 문제가 발생했지만 GIT_SSH 솔루션이 한 번 작동하는 것처럼 보였습니다. 컴퓨터를 다시 시작한 후 Git Bash 또는 명령 프롬프트를 사용하여 문제없이 개인 리포지토리를 복제 할 수 있었지만 SublimeGit 플러그인이있는 Sublime Text 3에서는 복제 할 수 없었기 때문에 이것이 다른 것임을 깨달았습니다. 내 솔루션은 간단했고 실제로 @BlueRaja-Danny Pflughoeft가 언급 한 내용이지만 방향을 사용할 수 있다고 생각했습니다.)

기본적으로 편집 ~/.ssh/config하고 사용자 이름이 git. Github에 특정 SSH 키를 사용하도록 지시 할 수도 있습니다. 내 ~/.ssh/config파일은 다음과 같습니다.

Host gh
    Hostname github.com
    User git
    IdentityFile ~/.ssh/github_rsa.pub

나는 하루 종일 내가하는 다른 일의 수 때문에 Github에 대한 특정 키를 가지고 있지만, 하나만 가지고 있다면 일반적으로 Github에서 설명하는~/.ssh/id_rsa.pub 것과 같습니다 .

나는 모든 사람이 다른 해결책을 가지고 있다는 것을 알고 있지만 수정없이이 기사를 접할 수있는 모든 사람을 위해 여기에 남겨 두겠습니다. 행운을 빕니다!


1

TortoiseGit을 사용하여 GitHub에서 저장소를 복제 할 때이 오류가 발생했습니다. "Load Putty Key"를 클릭하고 Git 복제 대화 상자에서 키 파일 (* .pkk)을 선택하여 수정되었습니다.



0

이 문제가 발생했습니다 (직접 ssh가 작동했지만 git pull 실패). 내 git remote가 내가 생각했던 것과 같지 않기 때문입니다.

예, 예, 어리석은 실수라는 것을 알고 있지만 실제로 발생하고 확인해 볼 가치가 있습니다.

사용하다 git remote -v


0

GitExtensions를 버전 3.3.0.7719로 업데이트 한 후 비슷한 문제가 발생했습니다.

어떻게 든 OpenSSH 대신 PuTTY를 사용하도록 인증 설정을 되돌 렸습니다.

해당 버전에는 OpenSSH를 다시 ​​활성화하는 데 사용한 메뉴가 있습니다.

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.