Bir kullanıcı için çoklu ortak anahtarlar


55

Bu soru SSH ortak anahtar kimlik doğrulamasına benzer; bir ortak anahtar birden fazla kullanıcı için kullanılabilir mi? ama bu tam tersi.

Herhangi bir ssh sunucusunun cevaplarınız için çalışabilmesi için ssh kullanmaya çalışıyorum.

Aynı kullanıcıya birden fazla ortak anahtar bağlayabilir miyim? Bunu yapmanın faydaları nelerdir? Ayrıca, kullanılan farklı anahtarlar için farklı ev dizinleri ayarlanabilir mi (tümü aynı kullanıcıya bağlanır)?

Eğer net değilsem, lütfen bana bildirin.

Teşekkürler.

Yanıtlar:


80

İstediğiniz sayıda anahtara sahip olabilirsiniz. Kişisel kullanımınız için bir set, işiniz için bir tane vb. Gibi, farklı bölgeler için ayrı özel / genel anahtar setleri kullanmak iyi bir uygulamadır.

İlk önce, biri eve, diğeri iş için olmak üzere iki ayrı anahtar takımı oluşturun:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Ardından, ~/.ssh/configbağlandığınız sunucuya göre kullanılacak anahtarı seçmek için dosyanıza bir giriş ekleyin :

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Daha sonra, içeriğini ekleme id_rsa.work.pubINTO ~/.ssh/authorized_keysiş makine ve ev makinede ev anahtarı için aynı şeyi.

Ardından, ev sunucusuna bağlandığınızda, tuşlardan birini, diğerini kullandığınız iş sunucusunu kullanın.

Büyük olasılıkla her iki anahtarı da eklemek istediğinizi unutmayın, ssh-agentböylece parolanızı her zaman yazmak zorunda kalmazsınız.


İd_rsa.work.pub ve id_rsa.home.pub aynı sunucuya yerleştirilmiş olsa bile bu işe yarar mı? Bunun nedeni, bir sunucuya farklı bilgisayarlardan bağlanıyor olabilirim, bu yüzden sunucuya aynı kullanıcı olarak bağlansalar bile her bilgisayar için farklı anahtar parolalarına sahip olmanın mantıklı olup olmadığını merak ediyorum. Teşekkürler.
Russell

2
Kesinlikle! Sunucu tarafında, ssh, bir eşleşme bulana kadar yetkili_keys dosyasındaki bütün genel anahtarları kontrol eder. Böylece tüm anahtarları sunucuda aynı yetkili_ anahtarlar dosyasına koyabilirsiniz.
Phil Hollenback

@PhilHollenback "ssh, bir eşleşme bulana kadar yetkili_keys dosyasındaki tüm genel anahtarları kontrol eder" - müşterinin bir şifresini çözebileceğini ispatlayana kadar her genel anahtar için müşteriye zorluk göndermeye devam ettiği anlamına mı geliyor? Bunun için referansınız var mı? (gerçekten ilgilenen)
aaa90210

5

Birden fazla kullanıcının anahtarının bir kullanıcıya gitmesi çok mantıklıdır. Yaygın nedenler:

  • yedek
  • git (örneğin Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • bir uygulamaya ortak erişim

Farklı homedir'lere sahip olduğu sürece, onları her bir anahtar için, yetkili1 environment="HOME=/home/user1"anahtar dosyasındaki kullanıcı1 anahtarını hazırlayarak değiştirebilirsiniz . Bakın man authorized_keys.

Deneyin, YMMV.

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.