Her seferinde ssh-add yazmaktan kaçınma


11

Uzaktaki bir makineye her ssh yaptığımda şifreyi yazmam gerekmeyecek şekilde bir ssh aracısının nasıl kurulacağına dair bazı çevrimiçi belgeleri okudum ve takip ettim.

Ancak, ssh-agent'ın yardımıyla ssh-add, kabuğu her başlattığımda yine de yapmam gerekiyor . Ardından ssh-addözel anahtarın kilidini açmak için parolayı girmemi ister.

Enter passphrase for key '/home/xx/.ssh/id_rsa':

Uzak makine için şifremi girmek yerine, özel anahtarın şifresini yazmam isteniyor. Bir araftan çıkmak gibi ve sonra kendimi cehennemde buldum. Görünüşe göre id_rsa sadece bir oturumda ssh-agent'a geçici olarak eklenir , çünkü her giriş ve yazımda ssh-add -l. Alırım:

The agent has no identities.

Anahtarı (id_rsa) ssh-agent'ta ne kadar kalıcı olarak saklayacağını sorabilir miyim? Teşekkürler

EDIT: Ben de bunu yaptım ssh-agent. Aşağıdaki bloğu ekledim~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
fi

Yani, her giriş yaptığınızda veya bir kabuk penceresi her açışınızda parolanızı yazmanız gerekiyor mu? Bazı çevrimiçi belgeleri izlediğinizi söylüyorsunuz, ancak ssh-agent, Ubuntu'daki kutudan çıkıyor, bu yüzden yapacak bir şeyiniz olmamalıydı. Tam olarak ne yaptın?
Gilles 'SO- kötü olmayı bırak'

Uzak makineye her giriş yaptığımda parola yazmam gerekiyor. ANCAK uzak makineye erişmek için parola değil, özel anahtarımın (id_rsa) kilidini açmak için parola.
ssgao

Anahtarının parolasının olduğunu biliyorum. Ne diye soruyorum ssh-agent kurmak için ne yaptığını, ve çalışan olsun ssh-addsiz bunu yazdığınız kabuk penceresinden daha uzun süren bir etkiye sahiptir.
Gilles 'SO dur olma kötülük'

Etki, sistemden çıkana kadar devam eder (yerel). Yaptığım şeyi ssh-agentyazıya koydum .
ssgao

Bu normal davranışa benziyor: anahtarın kilidini açmak için her oturumda bir kez parolanızı yazmanız gerekir. Kilidi açılmış anahtar bir yerde saklanmışsa, bu anahtar üzerinde bir parola olması amacını bozar - saklanan kilidi açılmış anahtarı alan herkes kullanabilir. Başka bir şey bekliyordun mu? Oturumu kapattıktan sonra bir sonraki yeniden başlatmaya kadar kullanılabilmesi için anahtarın bellekte depolanmasını ister misiniz?
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


6

Anahtarlık taktım.

sudo apt-get install anahtarlık

Bash çalıştırıyorsanız, .bash_profile klasörünüze birkaç komut eklemeniz gerekir .Bash_profile ana klasörünüzde bir tane oluşturmayın. Bu satırları ekleyin:

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

Bir iş gününün başında giriş yapacağım. Bir terminal açtığımda, parolam için bir kez istenecek. Diğer tüm yeni terminaller ve bağlantılar için tekrar parolam istenmeyecek.


4
bunun ssh-addterminalde yazmaktan farkı nedir?
ssgao

ya ama o zaman u her zaman ssh-add yazmak zorunda kalacak ... bunu yapmak 2 adım kesecek -> eval "$ (ssh-ajan)" ve ssh-add
abhishek

1

Aradığınız şey daha az güvenlidir, ancak ssh-agent'a ihtiyaç duymadan genel anahtar kimlik doğrulaması kullanılarak gerçekleştirilebilir. Daha güvenli bir seçenek, ssh sunucusunda parola kimlik doğrulamasını kapatırken parola ile ortak anahtar kimlik doğrulamasını kullanmaktır, ancak bu istediğiniz şey değildir. Bunun yerine karar verirseniz talimatlar için bu cevabın altındaki bağlantıya bakın.

Herhangi bir parola sorulmadan ssh kullanmak için parola alanını boş bırakırken anahtar çiftinizi oluşturmanız gerekir.

Önceden bir anahtar çifti oluşturup oluşturmadığınızı kontrol etmek için ~ / .ssh dizininizdeki id_rsa ve id_rsa.pub dosyalarını kontrol edin. Zaten oradalarsa, bunları silebilir veya yeni bir anahtar çifti oluşturmak için taşıyabilirsiniz.

Bunları silerseniz, kullandığınız ssh sunucularına erişiminizi kaybedersiniz, o zaman sunucuda parola kimlik doğrulaması kapatılmışsa kimlik doğrulaması yapmak için eski anahtarlar.

Yeni bir anahtar çifti oluşturmak için aşağıdaki komutu çalıştırın:

ssh-keygen -t rsa

Anahtarlar için varsayılan konumu kabul edin ve parolayı boş bırakın.

Genel anahtarınızı bağlanmak istediğiniz ssh sunucusuna vermek için aşağıdaki komutu kullanın:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

Bu adımları tamamladıktan sonra, kullandığınız bilgisayardan bir parola olmadan uzak sunucuda oturum açabileceksiniz.

Referans: http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/


0

Bir süre önce, aniden ssh anahtarımın kilidini açarken bir parola istenmeye başladım git push. Bir parola sorulmasını durdurmak için Başlangıç ​​Uygulamalarına SSH Anahtar Aracısı (GNOME Anahtarlık: SSH Aracısı) eklemenin yeterli olduğu ortaya çıktı (benim durumumda - sadece onay kutusunu işaretlemek için):

resim açıklamasını buraya girin


Cevabınızı, bunun nasıl yapılacağı ve söz konusu sorunun neden çözüleceği hakkında daha ayrıntılı olarak genişletebilir misiniz? Teşekkürler.
Bayt Komutanı
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.