답변:
SSH 에이전트를 시작한 후 다음을 수행하십시오.
eval $(ssh-agent)
개인 키를 추가해야합니다.
ssh-add
암호문을 한 번만 요청하면 공개 키를 Github에 업로드 한 경우 푸시를 허용해야합니다.
macOS에서 키를 영구적으로 저장하려면 :
ssh-add -K
사용자의 키 체인에 저장하여 닫았다가 다시 연 후에도 유지됩니다.
git pull
비밀번호를 다시 묻습니다.
ssh-add -K
사용자의 키 체인에 저장하여 닫았다가 다시 연 후에도 유지됩니다.
ssh-add -K
는 다음을 제공합니다.unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
-K
사과 전용입니다. help.github.com/articles/…
OS X El Capitan (10.11)에서 macOS Sierra (10.12)로 업그레이드 한 후 다시 시작한 후에이 문제가 발생했습니다. ssh-add
솔루션은 일시적 일 수 있지만 다른 재시작 지속되지 것입니다.
영구적 인 솔루션은 옵션을 편집 (또는 작성) ~/.ssh/config
하고 활성화하는 UseKeychain
것입니다.
Host *
UseKeychain yes
ssh-add -K /Users/***/.ssh/git/id_rsa
하지만 터미널을 다시 시작한 후에도 여전히 작동하지 않습니다 ... 감사합니다.
시도했지만 ssh-add
여전히 암호를 입력하라는 메시지가 표시되면를 사용해보십시오 ssh-add -K
. 이것은 암호문을 키 체인에 추가합니다.
업데이트 : macOS Sierra를 사용하는 경우 위의 작업이 더 이상 작동하지 않을 수 있으므로 다른 단계를 수행해야 할 수도 있습니다. 에 다음을 추가하십시오 ~/.ssh/config
.
Host *
UseKeychain yes
나는 다음을 시도 할 것이다 :
~/.bashrc
파일 편집
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn 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
}
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
zsh
. 그냥이 추가.zshrc
id_rsa
. 사용자 정의 이름이 있으면 eg를 사용해야합니다. /usr/bin/ssh-add ~/.ssh/custom_filename
Windows에서 나를 위해 일한 것은 (저는 repo 1st에서 코드를 복제했습니다) :
eval $(ssh-agent)
ssh-add
git pull
그 때 암호를 마지막으로 물어 봤습니다
크레딧 : 솔루션은 /unix/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket 에서 가져 왔습니다.
~ / .ssh / config에 이것을 추가하십시오 :
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
... 개인 키의 이름이 id_rsa 라고 가정
다른 솔루션을 시도하지만 도움이되지 않습니다. 그러나 Bitbucket.com seams 의이 단계 ( GitBash SSH 환경은 항상 암호 문구를 묻습니다. 어떻게해야합니까? )
아이디어는 다음과 같습니다.
당신은 ~/.bashrc
파일 을 만듭니다
팔로우 스크립트 추가 :
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn 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
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
배쉬를 다시 실행
위에서 언급하지 않은 또 다른 가능한 해결책은 다음 명령으로 리모컨을 확인하는 것입니다.
git remote -v
원격이 git으로 시작하지 않고 https로 시작하는 경우 아래 예에 따라 git로 변경하려고 할 수 있습니다.
git remote -v // origin is https://github.com/user/myrepo.git
git remote set-url origin git@github.com:user/myrepo.git
git remote -v // check if remote is changed