한 번 로그인하도록 SSH를 통한 Git 구성 다시 입력해야합니다. 비밀번호를 여러

ssh를 통해 git 저장소를 복제했습니다. 따라서 밀거나 당기면서 원래 마스터와 통신 할 때마다 암호를 다시 입력해야합니다. 비밀번호를 여러 번 입력 할 필요가 없도록 git을 어떻게 구성 할 수 있습니까?



답변

시도 ssh-add당신이 필요로하는, ssh-agent실행 및 개인 키를 들고있는

(Ok, 업데이트 된 질문에 응답하여 Jefromi가 설명 한ssh-keygen 것처럼 공개 및 개인 키를 생성하기 위해 먼저 실행 합니다 . 공개 키를 서버에 넣습니다. 개인 키에 -text 암호를 입력해야하지만 그렇게하면 아래 설명 된대로 실용적 문제가 필요 합니다.) ssh-agent

ssh-agent로그인 할 때 백그라운드에서 실행하려고합니다 . 로그인 한 후에 ssh-add는 에이전트에 암호를 제공하고 키를 해독하기 위해 한 번만 실행하는 것이 좋습니다 . 그런 다음 에이전트는 키를 잠금 해제하고로드하여 메모리에 앉아 방금 ssh 할 때마다 사용할 수 있습니다.

그런 다음 모든 ssh-family 명령 1 은 에이전트를 참조하여 자동으로 개인 키를 사용할 수 있습니다.

OSX (err, macOS )에서 그놈 및 KDE 시스템 ssh-agent은 일반적으로 자동으로 시작됩니다. 저와 같이 Cygwin 또는 다른 Windows 환경이 가장 확실하게 수행되지 않는 경우 세부 사항을 살펴 보겠습니다.

여기서 시작하십시오 man ssh-agent.

에이전트를 자동으로 실행하는 다양한 방법이 있습니다. 매뉴얼 페이지에서 설명하는 것처럼 모든 로그인 세션의 다른 프로세스의 부모가되도록 실행할 수 있습니다. 그렇게하면 환경 변수가 자동으로 모든 쉘에있게됩니다. (나중에) 호출 할 때 ssh-add또는 ssh둘 다 에이전트에 매직 소켓 경로 이름 또는 기타 환경 변수가 있으므로 에이전트에 액세스 할 수 있습니다.

또는 에이전트를 일반 하위로 실행하고 환경 설정을 파일에 저장 한 다음 시작할 때 모든 셸에서 해당 파일을 소싱 할 수 있습니다.

내 OSX 및 Ubuntu 시스템은 에이전트 실행 설정을 자동으로 수행하므로 ssh-add한 번만 실행 하면됩니다. 실행을 시도 ssh-add하고 작동하는지 확인하십시오. 그렇다면 재부팅 할 때마다 한 번만 수행하면됩니다.

내 Cygwin에서 시스템 내에서 이런 짓을 그래서, 수동으로 필요 .profile하고 내가 가진 .bashrc소스를 .profile:

. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
        ssh-agent > .agent
        . .agent > /dev/null
}

.agent파일은 스크립트에 의해 자동으로 생성됩니다; 환경 변수 정의 및 내보내기가 포함됩니다. 위의 방법으로 .agent 파일을 제공 한 다음 ps(1)에이전트 를 시도합니다 . 작동하지 않으면 에이전트를 시작하고 새 에이전트 파일을 만듭니다. 또한 실행할 수 있으며 ssh-add실패하면 에이전트를 시작하십시오.


1. 그리고 sudo올바른 pam 확장자를 가진 로컬 및 원격조차도 .


답변

HTTPS 프로토콜을 사용하고 있었기 때문에 GitHub와 비슷한 문제가있었습니다. 사용중인 프로토콜을 확인하려면 실행하십시오.

git config -l

로 시작하는 줄을보십시오 remote.origin.url. 프로토콜을 전환하려면

git config remote.origin.url git@github.com:your_username/your_project.git

답변

이것은 git이 아닌 ssh를 구성하는 것입니다. 아직 ssh-keygen암호를 입력 하지 않은 경우 빈 암호를 사용하여 키 페어를 만들어야합니다. 그런 다음을 사용하여 공개 키를 원격 대상에 복사합니다 ssh-copy-id. 여러 키가 필요하지 않은 경우 (예 : 다른 목적을 위해 암호가있는 더 안전한 키) 또는 여러 가지 이상한 신원 확인이 진행되지 않는 한 다음과 같습니다.

ssh-keygen   # enter a few times to accept defaults
ssh-copy-id -i ~/.ssh/id_rsa user@host

편집 : 당신은 실제로 DigitalRoss의 대답을 읽어야하지만 암호를 사용하여 키를 사용하는 경우 키 ssh-add <key-file>를 추가해야합니다 ssh-agent( ssh-agent배포에 아직 실행중인 것이 없다면 시작해야 합니다).


답변

저장소를 복제 할 때 HTTPS가 아닌 SSH URL을 사용하여 복제했는지 확인하십시오. 리포지토리의 복제 URL 상자에서 URL을 복사하기 전에 SSH 프로토콜을 선택하십시오. 아래 이미지를보십시오 :


답변

HTTPS를 사용하여 복제 한 경우 (권장) 다음을 수행하십시오.

git config --global credential.helper cache

그리고

git config --global credential.helper 'cache --timeout=2592000'
  • timeout = 2592000 (30 일 초) : 30 일 동안 캐싱을 활성화합니다 (또는 제품군).

  • 이제 사용자 이름과 비밀번호가 필요한 간단한 git 명령을 실행하십시오.

  • 자격 증명을 한 번 입력하면 30 일 동안 캐싱이 활성화됩니다.

  • git 명령으로 다시 시도하면 자격 증명이 필요하지 않습니다.

  • 자세한 정보 : -Git에서 GitHub 비밀번호 캐싱

참고 : 자격 증명 도우미를 사용하려면 Git 1.7.10 이상이 필요합니다. 시스템을 다시 시작할 때 암호를 다시 입력해야 할 수도 있습니다.


답변

git-bash 또는 터미널에서 명령을 실행하는 것보다 파일을 직접 편집하는 것을 선호하는 사람들을 위해 Muein의 ​​생각을 확장합니다.

프로젝트의 .git 디렉토리 (로컬 시스템의 프로젝트 루트)로 이동하여 ‘config’파일을여십시오. 그런 다음 [remote “origin”]을 찾아 다음과 같이 url 구성을 설정하십시오.

[remote "origin"]
    #the address part will be different depending upon the service you're using github, bitbucket, unfuddle etc.
    url = git@github.com:<username>/<projectname>.git

답변

여기에 다른 두 가지가 있다고 생각합니다. 첫 번째는 정상적인 SSH 인증을 위해서는 사용자가 계정의 비밀번호를 입력해야한다는 것입니다 (sshd 구성에 따라 다른 방법으로 계정 비밀번호가 인증 됨).

인증서를 사용하여 비밀번호를 입력하지 않아도됩니다. 인증서를 사용하면 여전히 비밀번호를 입력해야하지만 이번에는 개인 키의 비밀번호입니다 (계정의 비밀번호와 무관).

이를 위해 steveth45가 지적한 지침을 따를 수 있습니다.

공개 키 인증 .

매번 인증서의 비밀번호를 입력하지 않으려면 DigitalRoss가 지적한 ssh-agent를 사용할 수 있습니다

이 작업을 수행하는 정확한 방법은 Unix와 Windows에 따라 다르지만 기본적으로 로그인 할 때 백그라운드에서 ssh-agent를 실행 한 다음 처음 로그인 할 때 ssh-add를 실행하여 에이전트에 암호를 입력하십시오. 그런 다음 모든 ssh-family 명령은 에이전트에게 문의하여 자동으로 암호 문구를 선택합니다.

여기에서 시작하십시오 : man ssh-agent.

ssh-agent의 유일한 문제점은 * nix에서 모든 새 쉘에 인증서 비밀번호를 입력해야한다는 것입니다. 그런 다음 인증서가 “로드”되고 어떤 종류의 암호도 입력하지 않고 ssh 서버에 대해 인증하는 데 사용할 수 있습니다. 그러나 이것은 특정 껍질에 있습니다.

키 체인 을 사용하면 ssh-agent와 동일하지만 “시스템 전체”를 수행 할 수 있습니다. 컴퓨터를 켜면 쉘을 열고 인증서 비밀번호를 입력합니다. 그런 다음 다른 모든 셸은 해당 “로드 된”인증서를 사용하며 PC를 다시 시작할 때까지 암호를 다시 묻지 않습니다.

Gnome에는 그놈 키링 ( Gnome Keyring )이라는 비슷한 응용 프로그램이 있는데,이 인증서를 처음 사용할 때 인증서 암호를 묻는 다음 안전하게 저장하므로 다시 묻지 않습니다.