it-swarm-id.com

Bagaimana menghindari diminta frasa sandi setiap kali saya Push to Bitbucket

Saya mengatur barang ssh saya dengan bantuan panduan ini , dan itu berfungsi dengan baik (saya bisa menjalankan hg Push tanpa diminta passphrase). Apa yang bisa terjadi antara dulu dan sekarang, mengingat saya masih menggunakan direktori home yang sama.

$ 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

Anda perlu menggunakan agen ssh. Jawaban singkat: coba

$ ssh-add

sebelum mendorong. Berikan frasa sandi Anda saat diminta.

Jika Anda belum menjalankan ssh agent, Anda akan mendapatkan pesan berikut:

Could not open a connection to your authentication agent.

Dalam situasi itu, Anda dapat memulai dan mengatur lingkungan Anda dengan demikian

eval $(ssh-agent)

Kemudian ulangi ssh-add perintah.

Layak untuk melihat ssh agent manpage .

363
jmtd

Cara untuk mengatasi ini adalah dengan ssh-agent dan ssh-add:

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

Setelah ini frasa sandi disimpan untuk sesi saat ini. dan tidak akan ditanya lagi.

48
stefano

Saya menggunakan Keychain untuk mengelola kunci ssh. Ini juga tersedia di Debian dan mungkin dengan Ubuntu

apt-get install keychain

Inilah halaman paket keychain Debian . Seperti yang Anda lihat, proyek ini tidak terlalu aktif, tetapi bekerja untuk saya. Saya juga berkomentar sedikit tentang ini di jawaban lain di sini

29
Faheem Mitha

Buat (atau edit jika ada) file ~/.ssh/config berikut:

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

Untuk kenyamanan, metode optimal adalah kombinasi dari jawaban jmtd dan Faheem .

Menggunakan ssh-agent Saja berarti bahwa instance baru dari ssh-agent Perlu dibuat untuk setiap terminal baru yang Anda buka. keychain ketika diinisialisasi akan meminta frasa sandi untuk kunci privat dan menyimpannya. Dengan begitu kunci pribadi Anda dilindungi kata sandi tetapi Anda tidak perlu memasukkan kata sandi berulang kali.

The Arch wiki merekomendasikan menginisialisasi gantungan kunci dari /etc/profile.d/ Atau profil Shell Anda, seperti .bash_profile Atau .bashrc. Ini memiliki kekurangan karena intializes gantungan kunci Anda segera setelah Anda membuka terminal.

Pendekatan yang lebih fleksibel adalah dengan menggabungkan sesi keychain dengan sesi tmux tertentu. Jadi, dalam .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

... dan kemudian itu hanya kasus memulai sesi tmux yang diamankan saat dan saat diperlukan (diluncurkan dari keybind):

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

Sekarang, gantungan kunci Anda hanya akan diinisialisasi satu kali ketika Anda memulai sesi tmux khusus itu. Selama sesi itu berlanjut, Anda akan dapat mengakses kunci ssh tersebut dan Push ke repositori jarak jauh Anda.

6
jasonwryan

Anda dapat menggunakan sshpass:

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

Anda hanya perlu menambahkan sshpass -p yourpassphrase sebelum menambahkan perintah ssh Anda yang biasa.

0
belka