Ssh-agent'ın sudo benzeri bir hareketsizlik / boşta kalma zaman aşımı özelliğinden yoksun olmasının teknik bir nedeni var mı?


9

ssh-agent -t[1] ' deki mevcut özellik hakkında bazı kısa tartışmalar vardır ve 2001'e kadar debian-devel [2]' de hareketsizlik zaman aşımı özelliği isteyen bir yazı vardı. Burada SE [3] 'de yarışmasında benzer bir tartışma var.

Gezegenin geri kalanının ssh anahtarlarını nasıl koruduğunu merak etmeliyim - bunun benim için bu kadar acı verici bir nokta olması için bariz bir şeyi mi kaçırıyorum ve görünüşe göre başka kimse yok mu? Özellikle, ansible gibi, betik ssh etkileşimlerini düşünüyorum. Görünüşe göre bugün seçimleriniz:

  • Anahtardaki ajanın kullanım ömrünü endişe verici şekilde uzun bir süreye ayarlayın, ör. 1h veya komut dosyalarınızın maksimum çalışma süresi ne olursa olsun (birçok insanın sudo re-auth zaman aşımının bu kadar uzamasına izin verdiğinden şüpheliyim!) - seahorse/ / gnome-keyring-daemonancak bu kadar bile desteklemiyor [4]
  • Uzun süredir devam eden senaryolarınızı babysitleyin ve her 5/10/15 dakikada bir parolanızı tekrar girmeye devam edin: Artık parolanıza girerken günde 20 kez kolayca izlenebilirsiniz
  • Bu eksik özelliği taklit etmek için belki de evinizin demleme çözümünü TMOUThackleyin , belki de kabuğunuzun kabuk var ile birlikte (bu öneri için freenode #openssh IRC'deki millet teşekkürler)
  • Anahtar kullanım ömrü ayarlamayın, yani temsilciniz anahtarınızı sonsuza dek veya siz öldürene / yeniden başlatana kadar anahtarınızı yüklü tutar

Kimlik doğrulaması yaptığınız her rol türü için kısa ssh aracısı zaman aşımları, güçlü parolalar ve farklı anahtar dosyaları kullanıyorsanız: bu çok sinir bozucu bir güne yol açar!

Ben gpgkey2ssh ve akıllı kartlar ile denedim, ama bu gerçekten bu sorunu çözmüyor: Hala ssh-ajan işlevselliği istiyorum ve sadece özel anahtarlarımın maruz kalmasını önlemek için her 5 dakikada bir yeniden yetkilendirmek istemiyorum bilgisayarım boştayken bellekte.

Yanlış mı yapıyorum?

[1] SSH aracısı için varsayılan zaman aşımını yapılandırma

[2] https://lists.debian.org/debian-devel/2001/09/msg00851.html

[3] /server/518312/putty-pageant-forget-keys-after-period-of-inaktivite

[4] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129231


1
Yanıt değil, ancak evet, ssh-agentparçası olduğu oturum türüne karşı agnostik olduğunda oturum hareketsizliğinin nasıl tespit edileceği konusunda bazı teknik zorluklar vardır (örn. Tty oturumu, X11 oturumu veya başka bir şey). Ben bir şey olur senin otomatik komut dosyaları muhtemelen ajan yüklü anahtarın bağlı gerektiğini eğer gibi söylemek. Muhtemelen her birinin, her bir komut dosyasının çalışması için gereken belirli uzak komutları çalıştırmak için uygun sunuculardaki zorunlu komutlarla yetkilendirilmiş kendi özel anahtarları olmalıdır. Bu elbette cron vb.
Onları

ssh-agentBir oturumun ne zaman etkin olmadığını bilmek beklemiyorum , ancak en azından son imzalama işleminin gerçekleştiği andan itibaren zaman aşımını başlat, sadece her ssh-agentbaşlatıldığında değil. Ayrıca, zaten her komut dosyası rolü için ayrı kullanıcı hesapları ve anahtar dosyaları kullanıyorum, sudoers gerekirse yalnızca 1 veya 2 komutun sudo'd olmasını sağlar ve lshellişleri daha da kilitlemek için baktım . Ancak tüm bunlar beni anahtar dosyalarımı korumamdan kurtarmıyor: sadece sudo zfs sendbelirli bir anahtar için izin verilen tek komut olduğu için, bu anahtarı kullanan herkes için oldukça güçlü bir komut!
csirac2

Başka bir geçici çözüm: komut dosyanız için ControlMaster/ ControlPath/ ControlPersistoptions (bkz. man ssh_config) Kullanın. En azından tek bir ana bilgisayara bağlanıyorsa.
derobert

Bu ilginç bir öneri ve bana bir şey öğretti (teşekkürler!) Ama yine de ssh-agentyeniden başlatana kadar anahtarlarımı yüklü tutacaksam bir şey çözmüyor gibi görünüyor (ki haftalar olabilir).
csirac2

Yanıtlar:


2

Bu sizi endişelendiriyorsa , ekran kilitliyken xscreensaver-command -watchçalıştırmak için arayüzü kolayca kullanabilirsiniz ssh-add -D. Çok basit bir örnek için kılavuz sayfasına bakın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.