Makineyi yeniden başlatırken SSH Agent kimliğini kaybediyor


10

Adında anahtarlar oluşturduktan sonra id_rsavarsayılan konumunda. SSH ajanı komutuyla komut ssh-add ~/.ssh/id_rsaekliyorum, başarıyla eklendi.

Ben zaten SSH Agent ile olduğu gibi anahtar anahtar ifade girmeden SSH olabilir.

Ancak , makineyi veya sunucuyu yeniden başlattığımda ve ardından komutla kimliğimi kontrol ssh-add -Lettiğimde gibi bir mesaj alıyorum The agent has no identities.

Bu, makineyi yeniden başlattığımızda, Ajan'ın kimliğini kaybettiği anlamına mı geliyor? Bu normal davranış mı yoksa burada özlediğim bir şey mi?

Lütfen bana rehberlik edin, SSH ile pek aşina değilim.


Unix ve Linux sitesinde bu konuya bakın .
janosdivenyi

Yanıtlar:


11

Bu normal. Bir anahtar aracının amacı yalnızca şifrelenmiş anahtarları bellekte tutmaktır , ancak bunları diske asla yazmaz. (Bu amaçtan vazgeçer, neden ana anahtarın korumasını kaldırmıyorsunuz?)

Bu yüzden her oturum açışında anahtarların kilidi açılmalıdır ve bunu otomatikleştirmeniz gerekir - Linux'ta pam_sshbir seçenek kullanmaktır; Aracının kilidini açmak için otomatik olarak OS şifrenizi kullanır . Başka bir benzer modül, pam_envoybiraz daha güvenilir olan (ancak sistem gerektirir).

Her iki modül de aracının kendisini başlatır ve anahtarları otomatik olarak yükler.


mac osx terminalinde otomatikleştirme konusunda herhangi bir fikriniz var mı?
Niks

Komutu çalıştırdığımda şu şekilde $SSH_AUTH_SOCK sonuç alıyorum -bash: /tmp/ssh-gT43vE99vk/agent.511:: İzin reddedildi Burada kafam karıştı .. hava aracımı yönlendirme çalışıyor ya da değil .. rehberlik edebilir misiniz?
Niks

Bir komut olarak kullanılması amaçlanmamıştır - bu bir değişken , başka bir komutun parçası olarak kullandığınız bir şey. Örneğin echo $SSH_AUTH_SOCKdeğerini yazdırmak için.
Grawity

hey dostum .. herhangi bir fikir? stackoverflow.com/questions/31916395/…
Niks

3

Bunu ~ / .bashrc dosyasına deneyin :

if [ ! -S ~/.ssh/id_rsa ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/id_rsa
  ssh-add
fi
export SSH_AUTH_SOCK=~/.ssh/id_rsa

Bu sadece oturum açtıktan sonra şifre isteyecektir.


Cevabınız için teşekkürler, SSH ajanı düzgün çalışıyor demektir. Bunu ekledikten sonra, makineyi her başlattığınızda kimliğin eklenmesi gerekmez. Bu aptalca bir soru ise üzgünüm ama ssh için çok yeni.
Niks,

Ssh anahtarının şifresi varsa, her giriş yaptığınızda sorulur.
Shiro,

Bu cevap zararlıdır . Ne diyorsa yaparsan , özel anahtarını siler . Kimlik doğrulaması yapmanın başka bir yolu yoksa, ortak anahtar kimlik doğrulaması kullandığınız sistemlere erişimi kaybedersiniz.
kasperd

2

OS X'te, ssh-add özel anahtarınızı burada saklamaya karar verirseniz, Anahtarlık'a bağlanmak için özel bir bayrağa sahiptir.

Sadece koş ssh-add -K ~/.ssh/id_rsa.

Sanırım bu, sorunuzu daha eksiksiz cevaplıyor. Bu OS X'e özgü bayrak için belgeleri bulmak zor ama en azından OS X Leopard'tan beri çalışıyor.


2
Bu doğru cevaptır, bunu ssh-add -Aanahtarlıktaki tüm anahtarları ekler. Ek olarak, ayrıca a 'yi yaratın ~/.ssh/configve ekleyin, UseKeychain yesböylece macOS burada açıklandığı şekilde her zaman anahtarınızı koruyacaktır: unix.stackexchange.com/questions/140075/…
lucasarruda

MacBook'um, yeniden başlattığımda, bunu denedikten sonra bile kimliğimi unutuyor.
Dominic Sayers,
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.