it-swarm-tr.com

Bitbucket'e her bastığımda parola sorulmasını nasıl önleyebilirim?

Ssh şeylerimi bu kılavuz yardımıyla ayarladım ve iyi çalışırdı (hg Push parola istenmeden). Hala aynı ana dizini kullandığımı düşünürsek, o zaman ve şimdi arasında ne olabilirdi.

$ 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

Bir ssh aracısı kullanmanız gerekir. Kısa cevap: dene

$ ssh-add

itmeden önce. Sorulduğunda parolanızı girin.

Zaten bir ssh aracısı çalıştırmıyorsanız, aşağıdaki mesajı alırsınız:

Could not open a connection to your authentication agent.

Bu durumda, bir tane başlatabilir ve ortamınızı bu şekilde ayarlayabilirsiniz

eval $(ssh-agent)

Sonra ssh-add komutu.

ssh agent manpage adresine bir göz atmaya değer.

363
jmtd

Bunu çözmenin bir yolu ssh-agent ve ssh-add:

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

Bundan sonra, geçerli oturum için parola kaydedilir. ve bir daha sorulmayacak.

48
stefano

Ssh anahtarlarını yönetmek için Keychain kullanıyorum. Debian ve muhtemelen Ubuntu'da da mevcuttur.

apt-get install keychain

İşte Debian anahtarlık paketi sayfası . Gördüğünüz gibi, proje çok aktif değil, benim için çalışıyor. Ben de başka bir cevap bu konuda biraz yorum --- burada

29
Faheem Mitha

Aşağıdaki ~/.ssh/config dosyasını oluşturun (veya varsa düzenleyin):

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

Kolaylık için, en uygun yöntem jmtd ve Faheem cevaplarının bir kombinasyonudur.

Yalnızca ssh-agent Kullanmak, açtığınız her yeni terminal için yeni bir ssh-agent Örneğinin oluşturulması gerektiği anlamına gelir. keychain başlatıldığında özel anahtar (lar) için parola ister ve saklar. Bu şekilde özel anahtarınız parola korumalıdır ancak parolanızı tekrar tekrar girmeniz gerekmez.

Arch wiki , /etc/profile.d/ Veya .bash_profile Veya .bashrc Gibi Shell profilinizden anahtar zincirinin başlatılmasını önerir. Bunun bir dezavantajı, terminal açtığınız anda anahtarlığınızı harekete geçirmesidir.

Daha esnek bir yaklaşım, keychain ile belirli bir tmux oturumunu birleştirmektir. Yani, .bash_profile İçinde:

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

... ve daha sonra güvenli tmux oturumunu gerektiği gibi ve gerektiğinde başlatmak için bir durum söz konusudur (bir tuş takımından başlatılır):

#!/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

Şimdi, anahtar zinciriniz yalnızca o tmux oturumunu başlattığınızda bir kez başlatılacaktır. Bu oturum devam ettiği sürece, bu ssh tuşlarına erişebilir ve uzak depolarınıza aktarabilirsiniz.

6
jasonwryan

sshpass kullanabilirsiniz:

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

Sadece sshpass -p yourpassphrase normal ssh komutunuzu eklemeden önce.

0
belka