Saya ssh menjadi host jarak jauh (linux, fedora) dan saya ingin melakukan operasi ssh (git dengan bitbucket) di sana. Ada ssh-agent yang berjalan di mesin itu,
$ ps -e|grep sh-agent
2203 ? 00:00:00 ssh-agent
tetapi ketika saya ingin git, saya harus memasukkan kata sandi
$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa':
Catatan: jika saya beroperasi pada mesin itu secara lokal, itu tidak akan meminta saya untuk memasukkan frasa sandi
Jawaban:
Menurut pendapat saya cara terbaik menggunakan ssh
Sebelum menggunakan Git, tambahkan kunci Anda ke ssh-agent
Mulai ssh-agent jika tidak dimulai:
Tambahkan kunci pribadi Anda menggunakan ssh-add
Periksa apakah kunci ditambahkan (parameter adalah huruf kecil L):
Coba sambungkan ke server Git Anda:
Sekarang Anda dapat menggunakan Git tanpa petunjuk frasa sandi tambahan.
Cara lain
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
sumber
.bashrc
?eval
diperlukan karena menampilkan perintah yang mengekspor variabel lingkungan seperti SSH_AUTH_SOCK yang diperlukan. unix.stackexchange.com/questions/351725/…Jika sudah
ssh-agent
berjalan maka Anda dapat menambahkan kunci, dan Anda harus memasukkan frasa sandi satu kali, dan hanya satu kali untuk sesi itu.Anda tidak mengatakan OS apa yang Anda gunakan, tetapi jika itu adalah Linux & Gnome maka aplikasi "Kata Sandi dan Kunci" (nama CLI:)
seahorse
dapat mengaturnya sehingga tidak dikunci saat Anda masuk (tidak diperlukan frasa sandi) . Lingkungan desktop Linux lainnya memiliki manajer sendiri. Saya tidak yakin apa yang OS lain lakukan di sini.sumber
Alasan utama untuk menanyakan frasa sandi adalah bahwa kunci Anda dienkripsi, bandingkan dua:
tidak dienkripsi
terenkripsi
Jadi, Anda harus melakukan salah satu dari yang berikut:
~/.ssh/config
dan tentukan file identitas yang berbeda (IdentityFile
).ssh-add -l
untuk mendaftar semua identitas Anda (lalu bandingkan dengan lokal Anda) dan periksa kembali dengan Stash jika Anda menggunakan kunci yang tepat (mereka ada pada konfigurasi Stash).Jika Anda tahu frasa sandi dan Anda ingin mengotomatiskannya, coba solusi berikut ini:
Penyelesaian masalah:
eval "$(ssh-agent -s)"
).GIT_TRACE=1 git pull
atau denganGIT_SSH_COMMAND="ssh -vv"
(Git 2.3.0+) untuk men-debug perintah Anda lagi.Anda dapat mencoba mem-bypass meminta passphrase (yang akan mengarahkan ulang
true
), tetapi saya rasa itu tidak akan membantu. Jika diminta, ada alasan untuk itu dan itu pada dasarnya diperlukan.sumber
The
ssh-add
Program dimulai sebuah agen yang dapat menampung (dan memberikan) passphrase Anda. Cara menggunakannya dari jarak jauh adalah di induk shell interaktif Anda (sehingga agen tidak berhenti).Berikut beberapa pertanyaan terkait:
Sekarang ... menghubungkan dari jarak jauh , sebagai aturan perintah Anda tidak masuk seperti itu, jadi itu tidak dimulai
ssh-add
. Anda bisa mengatasi ini, dengan menjalankan skrip yangssh-agent
ssh-add
Titik lemah adalah langkah kedua: Anda masih akan diminta untuk frasa sandi, kecuali jika Anda melemahkan keamanan Anda dengan menggunakan kunci yang tidak memiliki frasa sandi . Beberapa orang melakukan ini, kebanyakan orang menyarankan untuk tidak melakukannya.
sumber
ssh-add
tidak memulai agen. Terhubung ke agen yang sudah berjalan.Anda dapat dengan mudah menghapus frasa sandi dari kunci Anda dengan menggunakan perintah berikut
Pada prompt pertama, masukkan lintasan file (atau tekan Enter untuk mengubah default) Permintaan kedua, masukkan frasa sandi lama Prompt berikutnya, cukup tekan enter untuk menghapus kata sandi.
Sepertinya ini adalah cara termudah!
sumber
Anda masih akan mendapatkan prompt kata sandi untuk mendekripsi kunci pribadi bahkan jika itu dimasukkan ke dalam
ssh-agent
hingga kunci publik SSH yang sesuai ditambahkan ke remote~/.ssh/authorized_keys
.Untuk mereproduksi:
Cukup membingungkan. Kata sandi login SSH jarak jauh akan cukup dalam hal ini.
Saya dapat berspekulasi bahwa ini mencegah penambahan kunci publik Anda (yang dipasangkan dengan kunci privat terenkripsi) tanpa mengetahui kata sandi enkripsi untuk kunci privat terkait. Ini adalah prosedur masuk sekali per jarak jauh.
sumber