Ssh-agent'ı tüm terminallerde nasıl çalıştırabilirim?


27

Ssh-copy-id kullanarak bazı sunuculara otomatik (parola az) ssh giriş ayarlamıştım. ssh-agentsadece çalıştırıldığı terminalden çalışır. ssh-addTüm terminallerimde nasıl çalışabilirim?

Doğal olarak, bir parola olmadan SSH anahtarını tercih etmem.

Yanıtlar:


26

Grafiksel bir oturumda oturum açıyorsanız ssh-agent, oturum başlangıcında başlaması için düzenleme yapın . Bazı dağıtımlar zaten bunu sizin için yapıyor. Sizinki değilse, ssh-agentoturum başlangıç ​​komut dosyanızdan veya pencere yöneticinizden çalıştırmak için düzenleme yapın . Bunun nasıl yapılacağı masaüstü ortamınıza ve pencere yöneticinize bağlıdır. El pencere yöneticisini başlatmak Örneğin, sadece çağrısına yerine my_favorite_wmgöre ssh-agent my_favorite_wm.

Başlamayın ssh-agentgelen .bashrcveya .zshrcbu dosyalar her yeni interaktif kabuk tarafından yürütülür beri. Başlanacak yer veya ssh-agentgibi bir oturum başlatma dosyasında ..profile.xsession

Nerede oturum açmış olursanız olun, tüm işlemlerde aynı SSH aracısını kullanmak istiyorsanız, rastgele adlandırılmış bir soket kullanmak yerine her zaman aynı soket adını kullanmasını sağlayabilirsiniz. Örneğin, bunu içine koyabilirsiniz ~/.profile:

export SSH_AUTH_SOCK=~/.ssh/ssh-agent.$HOSTNAME.sock
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
  ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi

Bilginize, kontrol nedeni $? -ge 2, çıkış kodu 1, ssh aracısının anahtarı yok, ancak ssh aracısı zaten çalışıyor olmasıdır.
wisbucky

7

Muhtemelen bu amaç için tasarlanan Keychain gibi bir program istiyorsunuz . Man sayfasından:

DESCRIPTION
   keychain is a manager for ssh-agent, typically run from ~/.bash_profile.
   It allows your shells and cron jobs to share a single ssh-agent process.

Gerçekten bu gibi!
Colin D,

Harika! teşekkür ederim. Mükemmel çalışıyor.
Biri

Bu, Github'dan sıkıştırılmış dosyayı indirdikten sonra, sıkıştırılmamış keychain-2.8.5 dizininizin tam yolunu ~ / .bash_profile export PATH = $ PATH: satırına eklediğinizden emin olun
Kevin Zhao

4

Masaüstü ortamınıza veya pencere yöneticinize uygulayın. Bunu geçmişte bir el ile özel ~/.Xclientsolarak yaptığımda, bunu sadece son satır olarak kullandım:

ssh-agent mywindowmanger

Bunun için kendi kurulum seçeneklerine sahip bazı DE'ler olabilir, ancak bana öyle geliyor ki (örn.) KDE bunu yapmıyor. Şu anda, benim kod üzerinden çalıştırılan görünüyor /etc/X11/xinit/xinitrc-commonne olursa olsun DE / WM tüm kullanıcılar için aktif ve üst süreç komut olduğundan, (fötr tarafından yapılan tahminen bir şey) $HOME/.Xclients, ama bu dosya başvurusu yok ssh-agent(oysa /etc/X11/xinit/xinitrc-commonyapar).

Eğer a'nız yoksa ~/.Xclients, sadece bir satırda bir tane oluşturabilirsiniz, ancak DE / WM'inizi başlatan komutu bilmeniz gerekecektir.

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.