Beberapa waktu lalu di StackOverflow, saya menanyakan pertanyaan ini tentang ssh-agent dan crontab . Saya punya pertanyaan serupa sekarang tentang ssh-agent dan layar pada sistem linux.
Jadi, di Mac saya, ssh-agent diluncurkan saat startup sistem, jadi selalu tersedia untuk saya. Saya pikir itu akan benar di linux saya (redhat el5 / fedora) jika saya menggunakan X-Windows. Namun, ini adalah mesin server jarak jauh dan saya selalu masuk melalui ssh.
Saya ingin mengatur ssh-key dengan benar sehingga saya tidak perlu memasukkan kata sandi beberapa kali selama pembaruan atau komit svn. Saya senang mengetikkan frasa sandi saya sekali per sesi, dan saya mencegah tim kami untuk tidak memiliki kata sandi ssh-key.
Untuk sesaat yang bersinar, sepertinya melakukan "eval` ssh-agent -s` "di .bash_profile saya, dipasangkan dengan perintah untuk membunuh ssh-agent ketika saya logout, akan berhasil. Namun, kami sangat memanfaatkan layar untuk mengelola program interaktif yang sudah berjalan lama dan lingkungan pengembangan. Jika Anda memulai & menghentikan ssh-agent seperti yang saya jelaskan, maka ia terbunuh ketika Anda keluar dari terminal, dan sub-sesi layar yang dulu merujuk pada instance ssh-agent ditinggalkan.
Jadi ... bagaimana saya bisa menjadi pengguna konsol, yang menggunakan layar, yang menggunakan kata sandi dengan kunci ssh-nya, yang tidak harus mengetikkan kata sandi secara konstan?
sumber
/etc/conf.d/local
(atau yang setara) untuk setiap pengguna yang menggunakan agen, untuk meluncurkanssh-agent
proses terpisah per pengguna. Jika, seperti yang Anda katakan, Anda tidak memiliki banyak pengguna, itu tidak akan terlalu buruk. Anda mengajukan poin yang baik (yang saya lupa pertimbangkan) tentang sesi terminal yang dilampirkan pada agen; lihat edit saya untuk jawabannya.Lihat gantungan kunci . Itu semua di atas. Lihat terutama pada opsi
--clear
dan--timeout
.sumber
Pendekatan yang lebih baik adalah dengan menggunakan penerusan ssh agent (
-A
opsi). Hal ini memungkinkan orang yang menggunakan ssh untuk menggunakan kunci dari ssh-agent yang berjalan pada mesin asal mereka, mungkin workstation tempat mereka sebenarnya duduk.sumber
untuk menindaklanjuti penerusan ssh agent, Anda akan menemukan bahwa secara default kredensial ssh yang diteruskan tidak akan tersedia untuk sesi layar Anda setelah Anda keluar, masuk kembali, dan melampirkan kembali sesssion Anda.
Namun, Anda dapat menyiasatinya, dengan membuat layar mengatur variabel lingkungan SSH_AUTH_SOCK menjadi sesuatu yang terkenal, dan membuat lokasi yang terkenal itu diperbarui ke soket auth Anda saat ini.
Saya menggunakan fungsi shell ini untuk masuk kembali ke layar dan memperbaiki ssh auth sock:
dan saya memilikinya di .screenrc saya:
Semoga ini membantu.
sumber
Jika saya mengerti Anda benar, Anda hanya ingin sesi layar, yang Anda lepaskan dan pasang kembali kadang-kadang tetapi tidak pernah lagi ingin memasukkan kembali kata sandi untuk ssh-agent (kata sandi kunci pribadi Anda).
Saya pikir cara termudah adalah mulai layar, daripada mulai ssh-agent dengan sub shell dan kemudian tetap di sub shell itu. Yaitu
sumber