나는 git bash를 사용하고 있으며 ssh-keygen을 사용하여 ssh 키를 설정하고 repo git으로 작업을 수행할 때마다 /c/Users/jankiewj/.ssh/id_rsa
. 해당 암호를 비활성화하는 방법이 있습니까?
편집하다: 방금 업무용 노트북에 Ubuntu를 새로 설치한 이후로 원래 제목을 편집(Windows 제거)했는데 ssh 키에 암호 문구가 있으면 항상 암호를 요청하며 이 문제를 해결하는 솔루션은 동일합니다. 이는 Unix인 MacOSX에서도 동일하게 작동하며 동일한 기본 도구를 사용합니다.
답변1
답변2
조금 더 좋고영구적인 해결책Windows에서 git bash를 열 때 ssh-agent를 자동으로 시작하는 것입니다. .profile 또는 .bashrc에 아래 내용을 복사하여 붙여 넣을 수 있습니다. 위에 올려두는 걸 더 좋아하는데.프로필
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
이 솔루션을 사용했습니다.이 github 도움말 기사에서
답변3
TDLR: Windows 사용자의 경우,
- 달리다
ssh-add "C:\\Users\\<your user>/.ssh/id_rsa"
- ~ 아니다
ssh-add ~/.ssh/id_rsa
예를 들어 나는 항상 다음을 봅니다.
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /c/Users/User/.ssh/id_rsa:
Identity added: /c/Users/User/.ssh/id_rsa (/c/Users/User/.ssh/id_rsa)
$ git pull
Enter passphrase for key 'C:\Users\User/.ssh/id_rsa':
일관되지 않은 경로 구분 기호에 유의하세요. ssh-agent는 Unix 경로 구분 기호를 사용하여 ~를 변환하지만 git은 대신 Windows 경로 구분 기호를 사용합니다. 파일 의 경로가 id_rsa
키로 사용된다는 점을 고려하면 캐시가 누락된 이유가 설명됩니다.
- 또 다른 차이점
C:/
은/c/
- 관련 설명: git이 암호 문구를 요청하면 해당 암호는 캐시되지 않으므로 해당 암호를 계속 입력할 수 있습니다. only 에 문구를 전달해 보세요
ssh-add
. - Windows에서는
~
"다중값"이라고 가정하므로 명시적으로 설명하는 것이 가장 좋습니다. ssh-add
와 같은 기본 위치를 살펴봅니다~/.ssh/id_rsa
. Windows에서는 이것이 모호하다고 가정합니다. 기본 경로를 사용하는 대신 명시적으로 형식이 지정된 경로를 명시적으로 전달합니다.ssh-add "C:\\Users\\<your user>/.ssh/id_rsa"
, 즉 @velval의 답변에도 있습니다.
답변4
열쇠고리이 작업을 지능적으로 수행하는 프로그램입니다.
.bashrc(또는 이에 상응하는 파일)에서 실행해야 하며 로드해야 하는 키 이외의 구성은 환경을 올바르게 설정하지 않습니다.
내가 사용하는 것은 다음과 같습니다.keychain --quiet key1.pem key2.pem
쉘이 Zsh라는 것을 인식하고 Bash를 사용할 때와 정확히 동일하게 작동했습니다.