Windows에서 git이 암호를 기억하지 못하는 이유


144

방금 git을 사용하기 시작했으며 cmd.exe를 사용하고 암호 호스트를 기억하고 암호 호스트를 기억할 수 없습니다 .git 호스트는 github이며 github에서 해당 가이드와 같은 ssh 키를 만들었습니다.

하지만 난 여전히 얻는다

*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':

msysgit을 직접 사용하지는 않았지만 미인 인증 에이전트 도움 있습니다.
Cebjyre

1
나는 모든 노력을하고 나는 발견 근무하는합니다.
Blake Niemyjski

1
Windows 10은 현재 OpenSSH와 함께 제공됩니다. ssh-agent 서비스를 활성화하고 ssh-add를 사용하여 ssh 저장소에 키를 추가하고 GIT_SSH환경에서 설정 하고 (필요한 경우) git / ssh는 ssh-agent를 통한 암호 문구를 기억합니다. 자세한 지침은 아래 답변을 참조하십시오.
d3r3kk

1
2019, 방금 Windows 10에 git을 설치하고 git은 암호를 한 번 묻고 기억합니다.
장 - 프랑수아 파브르

@ Jean-FrançoisFabre OpenSSL을 사용하지 않을 수 있습니다.
RoadRunner

답변:


206

나는이 질문이 2 살에 온다는 것을 알고 있지만, 같은 문제가 있었고 여기에 대한 몇 가지 대답이 나에게 대한 질문에 완전히 대답하지 못했습니다. 다음은 msysgit 외에 TortoiseGit를 사용하는지 여부에 따라 두 가지 단계별 솔루션입니다.

첫 번째 솔루션 Windows, msysgit 및 PuTTY를 가정합니다.

  1. 지시에 따라 msysgit 및 PuTTY를 설치하십시오.
  2. (선택 사항) 경로에 PuTTY를 추가하십시오. (이 작업을 수행하지 않으면 아래의 PuTTY 명령에 대한 모든 참조 앞에 해당 실행 파일의 전체 경로가 있어야합니다.)
  3. 아직 그렇게하지 않았다면, GitHub에서 지시하거나 Git 호스트가 지시 한대로 키 해시를 생성하십시오.
  4. 다시 말하지만, 아직 그렇게하지 않았다면 puttygen.exe 를 사용하여 PuTTY 's pageant.exe와 함께 사용하도록 키를 변환하십시오 . 지침은 PuTTY의 설명서, 이 유용한 안내서 및 사이버 공간의 여러 곳에 있습니다.
  5. PuTTY 's pageant.exe를 실행하고 .ppk 파일 ( "키 추가")을 열고 키의 암호를 입력하십시오.
  6. Windows 환경 변수 대화 상자에 액세스하십시오 ( "컴퓨터"를 마우스 오른쪽 단추로 클릭하고 "속성"을 클릭 한 다음 "고급 시스템 설정"또는 "고급"탭을 클릭하고 "환경 변수"를 클릭하십시오)). 다음 환경 변수를 추가하십시오.

    GIT_SSH = C : \ full \ path \ to \ plink.exe

    "C : \ full \ path \ to"를 plink.exe가있는 PuTTY의 전체 설치 경로로 바꾸십시오. "사용자 변수"섹션에 추가하는 것이 가장 좋습니다. 또한 plink.exe에 사용하는 경로가 Pageant (pageant.exe)에 사용하는 경로와 일치하는지 확인하십시오. 경우에 따라 다른 응용 프로그램과 함께 설치 될 수 있으므로 PuTTY를 여러 번 설치할 수 있습니다. 한 설치에서 plink.exe를 사용하고 다른 설치에서 pageant.exe를 사용하면 문제가 발생할 수 있습니다.

  7. 명령 프롬프트를여십시오.

  8. Github.com에서 호스팅되는 git 저장소에 연결하려는 경우 다음 명령을 실행하십시오.

    plink.exe git@github.com

    연결하려는 자식 저장소가 다른 곳에서 호스팅 되는 경우 git@github.com 을 적절한 사용자 이름과 URL 로 바꾸 십시오 . (Github 가정) 서버의 호스트 키가 캐시되지 않았다는 메시지가 표시되고이를 신뢰하는지 묻습니다. y로 대답하십시오 . 그러면 PuTTY의 알려진 호스트 목록에 서버의 호스트 키가 추가됩니다. 이 단계가 없으면 git 명령이 제대로 작동하지 않습니다. Enter 키를 누르면 Github은 Github이 쉘 액세스를 제공하지 않음을 알려줍니다. 괜찮습니다 ... 필요하지 않습니다. (다른 호스트에 연결하고 쉘 액세스를 제공하는 경우 다른 작업을 수행하지 않고 링크를 종료하는 것이 가장 좋습니다.)

  9. 다 했어요! 힘내 명령은 이제 명령 행에서 작동합니다. 부팅 시점에 pageant.exe가 .ppk 파일을 자동으로로드 하도록 할 수도 있습니다.

두 번째 솔루션 Windows, msysgit 및 TortoiseGit를 가정합니다.

TortoiseGit에는 PuTTY 실행 파일과 작업을 쉽게 할 수 있도록 특별히 수정 된 plink 버전 (TortoisePlink.exe)이 포함되어 있습니다.

  1. 지시에 따라 msysgit 및 TortoiseGit를 설치하십시오.
  2. 아직 그렇게하지 않았다면, GitHub에서 지시하거나 Git 호스트가 지시 한대로 키 해시를 생성하십시오.
  3. 다시 한 번, 아직 그렇게하지 않았다면 TortoiseGit의 puttygen.exe 를 사용하여 TortoiseGit의 pageant.exe와 함께 사용하도록 키를 변환하십시오 . 지침은 PuTTY의 설명서, 첫 번째 솔루션에 링크 된 유용한 가이드 및 사이버 공간의 여러 곳에 있습니다.
  4. TortoiseGit의 pageant.exe를 실행하고 .ppk 파일 ( "키 추가")을 열고 키의 암호를 입력하십시오.
  5. Windows 환경 변수 대화 상자에 액세스하십시오 ( "컴퓨터"를 마우스 오른쪽 단추로 클릭하고 "속성"을 클릭 한 다음 "고급 시스템 설정"또는 "고급"탭을 클릭하고 "환경 변수"를 클릭하십시오)). 다음 환경 변수를 추가하십시오.

    GIT_SSH = C : \ full \ path \ to \ TortoisePlink.exe

    "C : \ full \ path \ to"를 TortoisePlink.exe가있는 TortoiseGit의 전체 설치 경로로 바꾸십시오. "사용자 변수"섹션에 추가하는 것이 가장 좋습니다. 또한 TortoisePlink.exe에 사용하는 경로가 Pageant (pageant.exe)에 사용하는 경로와 일치해야합니다. 경우에 따라 다른 응용 프로그램과 함께 설치 될 수 있으므로 PuTTY를 여러 번 설치할 수 있습니다. TortoiseGit 설치에서 TortoisePlink.exe를 사용하거나 다른 응용 프로그램의 다른 설치 (또는 독립 실행 형 PuTTY 설치)에서 pageant.exe를 사용하면 문제가 발생할 수 있습니다.

  6. 다 했어요! 힘내 명령은 이제 명령 행에서 작동합니다. git 리포지토리에 처음 연결을 시도하면 서버의 호스트 키가 캐시되지 않았 음을 알리고 서버를 신뢰할 것인지 묻습니다. "예"를 클릭하십시오. (이것은 TortoisePlink.exe입니다.)

    부팅 시점에 pageant.exe가 .ppk 파일을 자동으로로드 하도록 할 수도 있습니다.

세 번째 솔루션 Window, msysgit 및 기본 명령 프롬프트를 가정합니다.

  1. msysgit 설치
  2. MS-DOS 명령 프롬프트에서 git을 사용하도록하십시오.
  3. 운영 start-ssh-agent
  4. SSH 암호를 입력하십시오
  5. 다 했어요! 힘내 명령은 이제 기본 명령 프롬프트에서 작동합니다.

3
각각 자체 퍼티 버전이있는 GitExtensions 및 TortoiseGit가 모두있는 경우 GIT_SSH 환경 변수를 실제로 사용중인 미인 선의 plink 경로로 설정해야합니다 .
shovavnik

15
다른 사람 이이 어리석은 오류를 겪을 경우를 대비하여 HTTPS URL이 아닌 SSH 원격 URL 형식 (git @ host : accountname / reponame.git)을 사용하고 있는지 확인하십시오. 그렇지 않으면 해당 암호를 계속 묻습니다 ...
dain

plink.exe git@github.com을 실행하면 "FATAL ERROR : Server가 예기치 않게 네트워크 연결을 닫았습니다"라는 메시지가 나타납니다.
Brett

4
참고 : 방법 3은 msysgit 으로 업스트림 되었으므로 start-ssh-agent명령 줄에 입력 하여 SSH 암호를 저장할 수 있습니다.
매트 클라크 슨

6
세 번째 솔루션은 명령 프롬프트가 닫힐 때까지만 해당 명령 프롬프트에 대해서만 작동합니다. 다른 모든 CMD는 여전히 암호를 요구합니다. 또한 다른 모든 클라이언트 (VS, VS Code)가 원격 자식과 통신하지 못합니다.
Dima

21

새 데스크톱을 설정할 때마다이 지침을 잊어 버리므로 평소와 동일하게 자주 사용되므로 여기에 다른 답변을 추가하겠습니다!


나 같은 초조 한 사용자를위한 빠른 단계

  1. OpenSSH Authentication Agent서비스를 활성화하고 자동으로 시작하십시오.
  2. ssh-add명령 행 을 사용하여 SSH 키를 에이전트에 추가하십시오 .
  3. git 통합 테스트를 통해 여전히 암호 문구를 요구하면 계속 진행하십시오.
  4. 환경 변수 $ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe를 세션 또는 사용자 환경에 영구적으로 추가하십시오.

세부 단계 : 개요

Windows는 한동안 OpenSSH와 함께 제공 되었습니다 . 그것은 ssh가 Git과 함께 작동하는 데 필요한 모든 비트를 포함하지만 100 % 완벽하게 작동하려면 여전히 약간의 TLC가 필요한 것 같습니다. 다음은 Windows 버전 10.0.18362.449부터 성공적으로 수행 한 단계입니다 (cmd.exe 셸을 열고을 입력하여 Windows 10 버전을 볼 수 있음 ver).

여기서는 이미 SSH 키 설정이 있으며 다음 위치에 있다고 가정합니다. ~/.ssh/id_rsa

Windows 10 상자에서 ssh-agent 서비스를 활성화하십시오.

  1. 시작-> '서비스'를 입력하고 나타나는 서비스 앱을 클릭하십시오.
  2. OpenSSH Authentication Agent목록 에서 서비스를 찾으십시오 .
  3. OpenSSH Authentication Agent서비스를 마우스 오른쪽 버튼으로 클릭 하고 '속성'을 선택하십시오.
  4. 변화 Startup type:에를 Automatic.
  5. Start서비스 상태를로 변경 하려면 단추를 클릭하십시오 Running.
  6. 을 클릭하여 대화 상자를 OK닫고 서비스 앱을 닫습니다.

에 키를 추가하십시오 ssh-agent

  1. 선호하는 셸을 엽니 다 (이 예제에서는 Windows Powershell을 사용하고 Powershell Core에도 적용합니다) .
  2. SSH 키를 ssh-agent:에 추가하십시오 ssh-add (기본값과 다른 경우 키의 경로를 첫 번째 인수로 추가 할 수 있습니다) .
  3. 메시지가 나타나면 암호를 입력하십시오.

힘내 + SSH를 사용해보십시오

  1. 쉘을 열고 (Powershell을 사용 하고 있습니다) 저장소를 복제하십시오.git clone git@github.com:octocat/Spoon-Knife
  2. 이 프롬프트가 표시되면 다음 섹션으로 계속 진행하십시오.
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':

GIT_SSH환경 변수 설정

어느 세션에서나 간단히이 환경 변수를 설정할 수 있으며 암호 문구 입력이 중지되고 ssh가 ssh-agent대신 사용합니다 . 또는 암호 문구를 사용자 환경에 영구적으로 설정할 수 있습니다.

GIT_SSH현재 쉘에서만 설정하려면 다음 을 수행하십시오.

  1. 선호하는 쉘을여십시오. (나를위한 Powershell)
  2. 환경 변수 GIT_SSH를 적절한 것으로 설정하십시오 ssh.exe.$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
  3. 위의 Git + SSH 사용해보기 단계를 다시 시도하십시오 .

GIT_SSH영구적으로 설정하려면

  1. 파일 탐색기를 엽니 다. 시작-> '파일 탐색기'를 입력하고 목록에서 클릭하십시오.
  2. '이 PC'를 마우스 오른쪽 단추로 클릭하고 '속성'을 클릭하십시오.
  3. '고급 시스템 설정'을 클릭하십시오.
  4. '환경 변수 ...'버튼을 클릭하십시오.
  5. 'your_user_name의 사용자 변수'에서 새로 만들기 ...를 클릭하십시오.
  6. Variable name:필드를 GIT_SSH로 설정
  7. 설정 Variable value:경로 - 투 - ssh.exe (일반적으로 필드 C:\Windows\System32\OpenSSH\ssh.exe).
  8. 확인을 클릭하여 새 사용자 변수 대화 상자를 닫습니다.
  9. 환경 변수 대화 상자를 닫으려면 확인을 클릭하십시오.
  10. 위의 Git + SSH 사용해보기 단계를 다시 시도하십시오 .

이것은 Windows 10이 진행되고 더 많은 것을 배우면서 새로운 단계 / 절차로 변경 될 수 있습니다. 나는 이것을 업데이트 된 상태로 유지하려고 노력할 것이며, 의견에 피드백을 기대합니다.


3
이것은 적어도 Windows의 경우 1/31/2020 기준으로 가장 완전한 답변입니다. PUTTY 등을 설치할 필요가 없습니다.
제이크

동의했다. 내장 지원이 마침내 여기에있는 것 같습니다.
Eron Lloyd

전설! 이것은 내 문제를 해결했습니다. 한동안 해결책을 찾고 다른 것들을 시도해 왔는데 이것은이 문제에 대한 가장 완벽한 차일입니다
Collin

좋은 답변과 몇 시간 엉망으로 나를 구해준 하나 감사합니다. +1
화난 84

20

자세한 지침이 필요한 사람은 다음 페이지를 참조하십시오. http://help.github.com/working-with-key-passphrases/


msysgit셸 을 사용하는 데 필요한 것입니다 .
arthurakay

1
Git Bash Desktop App을 사용할 때 나를 위해 일했습니다. 나는 notepad ~/.profile그 링크의 내용을 붙여넣고 Git Bash를 다시 시작하고 암호를 입력하고 이익을 얻었습니다.
Daryn

"Windows 용 Git에서 ssh-agent 자동 실행"섹션 (Win 10에서 git 2.x 사용)을 따랐지만 여전히 암호를 요구했습니다. 수락 된 답변의 첫 번째 해결책 (퍼티)에 따라이 문제가 해결되었습니다.
jakub.g

20

당신이 사용하는 경우에는 망할 놈의 강타를 아래에 윈도우 다음을 수행 할 수 있습니다 :

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

두 번째 명령에서 암호 문구를 요구할 것입니다. 수행해야 할 각 추가 작업 (한 번 암호 문구 필요)은 암호 문구를 요구하지 않습니다 (아래 스크린 샷의 예 참조).

Windows에서 Git bash에 암호 문구 추가


2
이것은 Windows 10의 Ubuntu 하위 시스템에서도 작동합니다.
meetar

1
키 쌍이 다른 곳에 있으면 ~ / .ssh / * _ rsa를 * .pem 파일의 경로로 바꿀 수 있습니다.
alex_danielssen

13

질문이 게시 된 후 5 년, 8 개월 및 6 일의 추가 솔루션 하나는 나쁜 생각이 아니므로 여기에갑니다.

참고 : Windows 컴퓨터를 사용한다고 가정합니다.

  1. git-credential-winstore를 다운로드하십시오 .
  2. 그것을 실행하십시오! PATH환경 변수에 GIT가 있으면 제대로 작동합니다. 그렇지 않으면을 실행하십시오 git-credential-winstore -i C:\Path\To\Git.exe.

다음에 리포지토리에 커밋하려고하면 자격 증명을 입력하라는 메시지가 표시됩니다. 그게 다야. 비밀번호를 변경할 때까지 더 이상 자격 증명을 요구하지 않습니다.


여러분의 지식을 위해 ... 자격 증명은 Windows 자격 증명 저장소에 저장됩니다.

자격 증명을 어디에 저장합니까?

이 앱은 기존 Windows 자격 증명 저장소를 사용하여 자격 증명을 보유합니다. 제어판> 사용자 계정> 자격 증명 관리자로 이동하여 "Windows 자격 증명"을 선택하면 저장된 자격 증명을 볼 수 있습니다. "git :"로 시작하는 항목은 git-credential-winstore의 항목입니다.


8
이 솔루션은 SSH 저장소에서 작동하지 않고 HTTPS에서만 작동하는 것으로 보입니다. / angryface
JasonCoder

8

키 파일의 비밀번호를 설정 한 경우 연결할 때 항상 해당 비밀번호를 입력해야합니다. 암호가없는 키를 만들면 매번 입력 할 필요가 없지만 키 파일에 액세스 할 수있는 사람은 누구나 github 계정에 연결할 수 있습니다.

ssh-agent도 작동 할 수 있습니다. 그것을 실행하고 암호 문구를 기억하는지 확인하십시오.


실행 ssh-keygen -p하면 OP가 암호를 설정하지 않아야 함
luchosrock

여전히 비밀번호를 묻는 메시지가 표시됩니다.
versedi

7

[편집-질문을 잘못 읽음, 이것은 관련된 문제에 대한 답변입니다. 후손을 위해 변명 판을 남겨두고]

제 경우는 서버 중 하나에서 호스팅되는 리포지토리로 푸시하려고했습니다. 푸시를 시도 할 때마다 git은 내 암호 (개인 키의 암호가 아닌 nb-암호)를 묻습니다.

서버의 인증 된 키에 공개 키를 추가하여 해당 서버로 암호없이 푸시 할 수있었습니다. 그리고 내 개인 키 에는 암호 가 없었기 때문에 (나쁜 연습 btw입니다!) 아무것도 입력하지 않아도됩니다.

공개 키를 서버에 추가하는 명령은 다음과 같습니다. 사용자 git가 서버의 사용자 라고 가정 합니다.

cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'

서버에 로그온하여 파일에 공개 키를 수동으로 추가하여 동일한 작업을 수행 할 수 있습니다. ~/.ssh/authorized_keys


쉘에 액세스 할 수없는 사람이 사용할 수있는 설명으로 이것을 변환 할 수 있습니까? 예를 들어 notepad 또는 이와 유사한 것을 사용하여 authorized_keys에 무엇을 넣어야합니까?
John Little

4

나는 이것이 몇 년이 지났다는 것을 알고 있지만,이 질문에 대한 해결책을 찾으려고 우연히 발견했으며 모든 수준의 전문 지식에 맞는 것을 찾았으므로 공유 할 것이라고 생각했습니다.

GitHub는 모든 것을 멋지고 쉽게 만드는 매우 유용한 설치 프로그램을 제공합니다 : https://help.github.com/articles/caching-your-github-password-in-git/


이것은 GPG 키 암호가 아닌 GitHub 비밀번호를 캐싱하는 것 입니다.
Judge2020

4

TortoiseGit 또는 PuTTY를 사용하지 않고 순수한 Git Bash 전용 솔루션 을 사용한다고 가정 해 봅시다 . 또한 비밀번호 문구가 처음에 비밀번호 문구없이 SSH 키를 생성 한 것과 거의 동일하므로 비밀번호 문구를 영구적으로 저장하고 싶지 않습니다. 그러나 여전히 일부 캐싱을 사용하려고합니다.

캐싱 목적으로 ssh-agentGit Bash 배포에 포함 된 프로세스가 사용됩니다. 이 프로세스는 기본적으로 시작되지 않으므로 먼저 시작해야합니다. SSH 키를 캐시하려면 ssh-add명령 을 사용하여이 프로세스에 키를 추가해야합니다.이 명령은 키 암호를 입력하라는 메시지를 표시하고 메모리에 저장합니다.

다른 솔루션의 단점 :

  • GitHub의 기사 ssh-agent에서처럼 자동 실행은 Git Bash를 시작할 때 시작부터 바로이 세션에서 SSH 키를 사용해야하는지 여부에 관계없이 암호를 요구합니다. 오늘 로컬 리포지토리와 함께 작업하는 경우 실제로 필요할 때만 (예 : 원격 리포지토리와 상호 작용할 때) 암호를 제공 할 수 있습니다.
  • GitLab의 기사 ssh-agent에서 좋아하는 것을 시작 하면 매번 입력하는 데 지쳤을 것입니다. 결국이 두 줄을 구성에 추가하여 자동 시작될 수 있습니다. 단점은 위와 동일하며 추가 기능과 동일합니다. 새로운 Git Bash 터미널을 시작할 때마다 추가 ssh-agent 프로세스가 제공됩니다 (GitHub의 bash 스크립트는 해당 프로세스가 이미 시작되었는지 확인합니다).eval $(ssh-agent -s).bashrc
  • 위의 두 가지와 비슷하지만 특히 다른 호스트에 대해 별도의 SSH 키가있는 경우 (예 : GitHub 용 키와 GitLab 용 키), 한 번에 모두 제공하는 것은 성 가시고 불편합니다.

따라서이 솔루션은 Git Bash가 Windows 세션 당 한 번만 암호를 요구하는 방법을 궁금해하는 사람들을 위해 필요합니다. 이는 GnuPG 커밋 자동 서명을 사용한 암호 구 관리 동작과 유사합니다 default-cache-ttl.

필요한 경우 Git Bash 만 사용하여 비밀번호 문구를 한 번 요청하도록 SSH 구성

  1. 먼저 ssh-agentGit Bash 셸을 시작할 때 자동 실행을 시작하려고합니다 . 프로세스가 이미 시작되었는지 확인하기 위해 수정 된 GitHub의 스크립트 를 사용 하지만 ssh-add바로 키 를 사용 하지는 않습니다 . 이 스크립트는 간다 당신 ~/.bashrc이나 ~/.profile또는 ~/.bash_profile( ~귀하의 사용자 홈 디렉토리와 같은 C:\Users\Username- 실행 cd ~하고 pwd그것을 밖으로 인쇄하는 힘내 배쉬 용) :

    ### Start ssh-agent
    
    env=~/.ssh/agent.env
    
    agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
    
    agent_start () {
        (umask 077; ssh-agent >| "$env")  # use -t here for timeout
        . "$env" >| /dev/null ; }
    
    agent_load_env
    
    # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
    agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
    
    if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
        agent_start
    fi
    
    unset env
  2. 이제 ~/.ssh/config파일을 편집하거나 작성 AddKeysToAgent하고 캐싱을 설정하려는 각 호스트 스탠자 에 대한 옵션을 추가하십시오 (모든 호스트 선언 전에 파일의 시작 부분에 지시문을 배치하여 전역으로 설정할 수도 있습니다).

    # GitHub.com
    Host github.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_github
      AddKeysToAgent yes
    
    # GitLab.com
    Host gitlab.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_gitlab
      AddKeysToAgent yes

    ssh config 매뉴얼 페이지에서 : 이 옵션을 yes로 설정하고 파일에서 키를로드하면 ssh-add (1)과 같이 키와 해당 암호가 기본 수명으로 에이전트에 추가됩니다.

기본 최대 수명은 영구적이거나 ssh-agent프로세스가 종료 될 때까지 (작업 관리자에서 수동으로 또는 PC가 종료 될 때)입니다. 유한 제한 시간을 사용하려면 ssh-agent의 -t매개 변수 를 사용하여 제한 시간을 설정할 수 있습니다 . 위의 첫 번째 단계에서 bash 스크립트의 행을 변경하십시오 (예 : 키 캐시 수명 30 분).

(umask 077; ssh-agent -t 30m >| "$env")

다른 시간 형식 한정자에 대해서는 여기 를 참조 하십시오 .


3

사용자 .bashrc의 홈 디렉토리에 파일을 만들고 다음 과 같이 C:/Users/youruser넣을 수 있습니다.

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

이 스크립트는 bash가 실행될 때마다 실행됩니다. 따라서 git-bash시작 시 비밀번호를 한 번만 입력해야합니다 !

bash의 일부 버전은 .bash_profile대신 파일이 필요 .bashrc하므로 clone의 경우를 대비하여 .bashrc:

copy .bashrc .bash_profile

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