it-swarm-ko.tech

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
...
238
tshepang

Ssh 에이전트를 사용해야합니다. 짧은 답변 : 시도

$ ssh-add

밀기 전에. 요청시 암호를 입력하십시오.

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

Could not open a connection to your authentication agent.

이 상황에서 하나를 시작하고 그에 따라 환경을 설정할 수 있습니다

eval $(ssh-agent)

그런 다음 ssh-add 명령.

ssh agent manpage 를 살펴볼 가치가 있습니다.

363
jmtd

이를 해결하는 방법은 ssh-agentssh-add :

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

이 후 암호는 현재 세션에 저장됩니다. 다시 묻지 않습니다.

48
stefano

Ssh 키를 관리하기 위해 Keychain 을 사용합니다. 데비안에서도 사용할 수 있으며 아마도 우분투에서

apt-get install keychain

데비안 키 체인 패키지 페이지 입니다. 보시다시피, 프로젝트는 활발하지 않지만 나를 위해 일합니다. 나는 또 다른 대답에서 이것에 대해 약간의 논평을했다 here

29
Faheem Mitha

다음 ~/.ssh/config 파일을 작성하십시오 (있는 경우 편집).

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_rsa
20
ness-EE

편의상 최적의 방법은 jmtdFaheem 의 대답을 조합 한 것입니다.

ssh-agent 만 사용한다는 것은 열 때마다 새로운 터미널마다 ssh-agent의 새 인스턴스를 만들어야한다는 것을 의미합니다. keychain 초기화시 개인 키에 대한 암호를 묻고 저장합니다. 그렇게하면 개인 키는 비밀번호로 보호되지만 비밀번호를 반복해서 입력 할 필요는 없습니다.

Arch wiki/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 키에 액세스하여 원격 리포지토리로 푸시 할 수 있습니다.

6
jasonwryan

sshpass를 사용할 수 있습니다 :

$ Sudo apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]

sshpass -p yourpassphrase 일반적인 ssh 명령을 추가하기 전에.

0
belka