나는 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이 올바르게 인증하는 것처럼 보이기 때문에 여기에서 가장 좋은 솔루션이 무엇인지 궁금합니다. 필요한.
답변
홈 디렉토리에 “.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
답변
TortoiseGit 사용
TortoiseGit> 설정 … 네트워크 … SSH 클라이언트 : C:\Program Files\Git\usr\bin\ssh.exe
내 위치는 다릅니다. 한 컴퓨터에서C:\Program Files (x86)\Git\bin\ssh.exe
답변
“… plink.exe 또는 peagant.exe가 무엇인지 잘 모르겠습니다 …”
당신이 묻기 때문에 : plink & pageant는 Linux & Windows를 지원하고 Windows에서 완전히 지배적 인 SSH 구현 인 PuTTY 제품군의 일부입니다.
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은 자체 설치합니다.
답변
GIT_SSH
TortoiseSVN 버전을 가리키고 있었기 때문에이 문제가 발생했습니다 Plink.exe
. TortoiseGit 버전을 가리 키도록 변경하고 cmd를 다시 시작하면 작동했습니다.
(에있는 내가 정확히 기억하지 수 있지만, TortoiseSVN이 버전은 32 비트 버전되었을 수 있습니다, 그리고 TortoiseGit 버전이 64 비트를했다 Program Files
,하지 Program Files (x86)
).
GIT_SSH
환경 변수를 다시 확인하십시오 .
나는 정상과 함께 git을 사용하는 것을 선호합니다 cmd.exe
(물론 Console2에서)
답변
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 배 빠릅니다.
답변
Pageant를 사용 중이고 PC를 재부팅 한 후 (또는 그렇지 않으면 Pageant를 닫았다가 다시 연 후) 질문에 설명 된 오류가 표시되는 경우 :
이 오류는 Pageant가 GitHub SSH 키를 적극적으로로드하지 않았기 때문에 발생할 수 있습니다. 기본적으로 Pageant는 시작할 때 이전 세션에서 키를 자동으로로드하지 않습니다.
키를로드하려면 :
- Pageant를 엽니 다. (Windows에서 Pageant가 실행 중이면 시스템 트레이에 아이콘이 표시됩니다. 두 번 클릭하십시오.)
- 키 추가 버튼을 클릭하고 기존 GitHub SSH 키를 계속 추가합니다.
앞으로이 문제를 방지하기 위해 Pageant가 시작될 때 키를 자동으로로드하도록 구성 할 수 있습니다. (키가 암호로 보호 된 경우 Pageant는 자동으로 암호를 입력하라는 메시지를 표시합니다.)
이를 수행하는 단계 (Windows가 시작될 때 실행되도록 Pageant를 이미 구성했다고 가정) :
- Windows가 시작될 때 Pageant를 실행하기 위해 Windows에서 사용하는 바로 가기를 찾습니다. (시작> 실행>으로 열 수있는 시작 폴더에있을 수 있습니다.
shell:startup
) - 바로 가기의 속성 대화 상자에서 SSH 키 파일의 전체 경로와 파일 이름을 “대상”필드에 추가합니다.
참조 및 전체 세부 정보 : http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
답변
내 문제는 내 github 사용자 이름을 사용하려고한다는 것입니다. 분명히 Github를 사용할 때 (또는 Git일까요?) 키 기반 인증을 사용하는 경우 사용자 이름을 git
.
사용자 이름이 왜 필요한지 잘 모르겠습니다. 더 많은 지식이있는 사람이 설명 할 수 있습니까?