Bitbucket에 푸시할 때마다 비밀번호를 묻는 메시지를 피하는 방법

Bitbucket에 푸시할 때마다 비밀번호를 묻는 메시지를 피하는 방법

나는 다음의 도움으로 SSH 항목을 설정했습니다.이 가이드, 예전에는 잘 작동했습니다( hg push비밀번호를 묻지 않고도 실행할 수 있었습니다). 내가 여전히 동일한 홈 디렉토리를 사용하고 있다는 점을 고려하면 그때와 지금 사이에 무슨 일이 일어났을 수 있습니까?

$ cat .hg/hgrc 
[paths]
default = ssh://[email protected]/tshepang/bloog

$ hg push
Enter passphrase for key '/home/wena/.ssh/id_rsa': 
pushing to ssh://[email protected]/tshepang/bloog
searching for changes
...

답변1

SSH 에이전트를 사용해야 합니다. 짧은 대답: 시도해 보세요

$ ssh-add

밀기 전에. 요청 시 비밀번호를 제공하세요.

SSH 에이전트를 실행하지 않은 경우 다음 메시지가 표시됩니다.

Could not open a connection to your authentication agent.

이 경우 하나를 시작하고 환경을 설정할 수 있습니다.

eval $(ssh-agent)

그런 다음 명령을 반복하십시오 ssh-add.

볼만한 가치가 있는SSH 에이전트 맨페이지.

답변2

이 문제를 해결하는 한 가지 방법은 다음을 사용하는 것 ssh-agent입니다 ssh-add.

$ exec ssh-agent bash
$ ssh-add
Enter passphrase for ~/.ssh/id_rsa: 

그런 다음 현재 세션의 비밀번호가 저장됩니다. 다시 질문하지 않습니다.

답변3

다음 ~/.ssh/config 파일을 생성(또는 존재하는 경우 편집)합니다.

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_rsa

답변4

편의상 가장 좋은 접근 방식은 다음 답변을 조합하는 것입니다.젬트그리고파힘.

단독으로 사용한다는 것은 새 터미널을 열 때마다 새 인스턴스를 생성한다는 ssh-agent의미입니다 . 초기화 시 개인 키의 비밀번호를 요청하고 저장합니다. 이렇게 하면 개인 키가 비밀번호로 보호되지만 비밀번호를 반복해서 입력할 필요가 없습니다.ssh-agentkeychain

이것아치스 위키또는 /etc/profile.d/와 같은 셸 구성 파일 에서 키체인을 초기화하는 것이 좋습니다 . 단점은 터미널을 열면 키체인이 초기화된다는 것입니다..bash_profile.bashrc

보다 유연한 접근 방식은 이를 keychain특정 세션과 결합하는 것입니다. tmux따라서 .bash_profile:

tsess=$(tmux ls 2>&1)

if [[ "${tsess%%:*}" = "secured" ]] && 
   [[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
    # start keychain
    /usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
    . $HOME/.keychain/$HOSTNAME-sh
fi

tmux...그리고 필요할 때 보안 세션을 시작하는 경우입니다(키 바인딩에서 시작).

#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"

if [[ -z "$SSH_AUTH_SOCK" ]]; then
    eval `ssh-agent`
    trap "kill $SSH_AGENT_PID" 0
fi

if [[ -z "$PID" ]]; then
    urxvtc -title "SSH" -e sh -c "${new}"
else
    urxvtc -title "SSH" -e sh -c "${old}"
fi

ssh-add

이제 tmux특정 세션을 시작할 때 키체인이 한 번만 초기화됩니다. 세션이 지속되는 한 ssh이러한 키에 액세스하여 원격 저장소에 푸시할 수 있습니다.

관련 정보