Setiap kali saya SSH ke server lain dari server Ubuntu tanpa kepala saya saya diminta kata sandi untuk file kunci saya. Bahkan jika saya sebelumnya sudah terhubung ke server.
Apakah Anda tahu mengapa ini mungkin? Bisa jadi sesuatu yang sederhana seperti ssh-agent
tidak berjalan saat ini atau sesuatu.
Kunci yang sama pada desktop Ubuntu Gnome saya berfungsi dengan baik. Server dan desktop menjalankan Ubuntu 10.10.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
berjalan:ps -ef | grep '[s]sh-agent'
Jawaban:
Sekalipun agen naik, jika variabel lingkungan tertentu tidak disetel, Anda tidak memiliki referensi ke agen. Selain itu, bahkan jika itu semua ok, agen dan variabel, identitas tidak secara otomatis dikirim ke agen: itu adalah tugas
ssh-askpass
, hanya bekerja dalam sesi X.Jika Anda menggunakan bash, buat file
~/.bash_profile
dengan konten ini:modifikasi nama file
~/.ssh/id_dsa
sesuai kebutuhan Anda, dan tambahkan baris ini ke~/.bash_logout
Catatan terakhir: ini tidak mengganggu sesi gnome, karena dalam kasus ini hanya
~/.profile
bersumber, dan Anda bisa mendapatkan manfaat darissh-askpass
antarmuka grafis yang meminta frasa sandi dan mengirimkannya kessh-agent
.sumber
ssh
masuk ke mesin lain. Tetapi tidak ketika menggunakangit
untuk mendorong atau menarik repositori publik. Apakah Anda punya ide bagaimana saya bisa menyelesaikannya juga?ssh()
, panggilgit()
dan ubah baris terakhir dari/usr/bin/ssh
menjadi/usr/bin/git
. Juga, tambahkan baris terakhir denganexport -f git
.ssh
masuk ke mesin denganbash_profile
file yang Anda buat di atas, ia meminta saya untuk memasukkan kata sandi kunci. Untuk beberapa alasan sekarang setiap kali saya ssh di dalamnya meminta bahkan sebelum saya telah dieksekusissh
ataugit
. Lihat gist.github.com/942082 untuk konfirmasi yang saya dapatkan kembali ketika saya login ke mesin yang menyinggung.git
berinteraksissh
, dan saya tidak menggunakannyagit
sehingga saya tidak bisa mencoba. Saya memodifikasi~/.bash_profile
untuk memasukkangit()
fungsi yang saya sebutkan di atas, untuk memastikan penjelasan saya sebelumnya jelas. Juga, tampaknya dari output yang Anda tunjukkan bahwa Anda memodifikasi mesin server, tetapi semua saran saya diarahkan ke mesin klien saja.git
mendorong ke forge / repositori pusat sehingga file berada di tempat yang tepat. Saya pikir Anda baru saja memberi saya petunjuk / berlari pikiran saya. Saya memiliki prompt bash khusus yang menampilkan cabang git daripwd
. Saya yakin itulah yang memicu permintaan kata sandi di bash login karena mencoba untuk mendapatkan stat sebelum rendering bash prompt!Saya baru-baru ini mulai menggunakan ssh-ident:
https://github.com/ccontavalli/ssh-ident
Yang harus Anda lakukan adalah menambahkan sesuatu seperti:
di Anda
.bashrc
. Atau, Anda dapatln -s /path/to/ssh-ident ~/bin/ssh
atau direktori lain di PATH Anda sebelum/bin
dan/usr/bin
.sumber
Pertanyaan ini memiliki jawaban yang cukup bagus di SuperUser .
Saya menemukan petunjuk untuk menggunakan Keychain cukup berguna.
sumber