openssh: Minta ssh menambahkan kunci ke agen sesuai kebutuhan

25

Ketika saya ssh ke server dan kunci saya tidak dimuat di agen, saya harus batal, kemudian jalankan ssh-add untuk memasukkan kunci saya ke agen. Saya ingin perintah ssh untuk menambahkan kunci secara otomatis jika tidak ada. Apakah ini mungkin?

Ahli Fisika enigmatic
sumber
Apakah Anda memiliki satu kunci untuk semua host target Anda, atau apakah Anda memiliki kunci yang berbeda dengan kata sandi yang berbeda? Apakah Anda menggunakan dempul dari Windows atau Anda menggunakan sistem windowing berbasis X di Linux atau Anda menggunakan Mac?
Otheus
Saya hanya menggunakan satu kunci dan openssh. ssh sudah menemukan kunci yang tepat dan meminta saya untuk frasa sandi, tetapi setelah saya memasukkannya, kunci itu tidak akan disimpan ke agen. Perilaku ini sama pada semua sistem POSIX dan cygwin.
enigmaticPhysicist
Apakah terlihat mirip? stackoverflow.com/questions/3466626/…
techraf
Tidak, itu berbeda. Saya ingin memasukkan kata sandi utama setiap kali agen dihentikan. Saya hanya ingin ssh untuk menambahkan kunci ke agen secara langsung sesuai kebutuhan, daripada harus menggunakan ssh-add terlebih dahulu.
enigmaticPhysicist

Jawaban:

35

The AddKeysToAgentpilihan melakukan apa yang saya inginkan. Saya dapat menentukan -o AddKeysToAgent=yespada baris perintah atau menambahkan AddKeysToAgent yespada baris dengan sendirinya di saya .ssh/config. Keduanya berfungsi.

Sepertinya ini adalah tambahan yang sangat baru untuk openssh, muncul di rilis 7.2, tanggal 2016-02-28!

http://www.openssh.com/txt/release-7.2

Terima kasih, OpenBSD! Saya akan menggunakan ini banyak .

Ahli Fisika enigmatic
sumber
.ssh / config: baris 3: Opsi konfigurasi salah: AddKeysToAgent. Adakah pikiran? Server Unix
trainoasis
Periksa versi openssh Anda. $ ssh -V. Itu harus lebih baru dari atau sama dengan 7.2.
enigmaticPhysicist
Memang itulah masalahnya, terima kasih. Namun tetap meminta kata sandi setelah relog. Bagaimana cara mengotomatisasi git pull melalui skrip misalnya jika Anda selalu perlu memasukkan pass? Dan saya kira id_rsa tanpa password bukanlah ide yang bagus ...
trainoasis
Apakah maksud Anda antara login ssh atau antara login lokal? Kata sandi seharusnya dihapus antara login lokal.
enigmaticPhysicist
Setiap kali saya menjalankan skrip secara lokal, ia harus ssh di sana dan menjalankan git pull dll., Tapi tentu saja tidak bisa karena memerlukan kata sandi untuk perintah GIT (ssh bekerja tanpa karena pass ada di Keychain, tetapi perintah di sana tentu saja meminta pass)
trainoasis