SSH anahtarlarım başka bir makineye nasıl aktarılır?


42

İki makinede hesaplarım var: H1 ve H2. H1'de ssh anahtarları yarattım ve S1'e yükledim. Şimdi H1’den S1’e ssh yapabilirim. Ben de aynısını H2 den yapmak istiyorum. H2 üzerindeki H1'de oluşturulan ssh anahtarlarını nasıl kurarım?


2
Yana ssh-copy-idbir daha hamlede (mevcut tuşları veya yanlışlıkla kopyalama hiçbir yazma olan özel yerine anahtarını kamu ve daha az bilinen bir çözüm anahtarının), kabul edilen cevap olarak bu cevapları birini kabul etmek düşünün lütfen.
agtoever

Yanıtlar:


28

Düzenlendi: Her iki makineye de sahipseniz, özel anahtarınızı paylaşabilirsiniz. Ancak bu çözüm, çalınan notebook veya elinizde olmayan makineler için güvenli değildir.

H2 ile S1 arasında oturum açabilmek için aynı özel anahtarı kullanmak istiyorsanız, özel anahtarlarınızı H1'den H2'ye kopyalayabilirsiniz. H1’de komutları yaptığınızda:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Uyarı! Bu, H2’de sahip olduğunuz tüm özel anahtarları silecek ve değiştirecektir.

Daha iyi bir yol , H2 ( ssh-keygen) üzerinde yeni özel anahtarlar oluşturmak ve halka açık kısımlarını S1'e ssh-copy-iduse ile yüklemek . Bu daha güvenli durumda iki anahtar setiniz olacak; Biri H1-S1 girişi için, ikincisi H2-S1 girişi için. S1'de yetki verilen iki ortak anahtar olacaktır. Ve bunlardan herhangi birini veya her ikisini de iptal edebileceksiniz (örneğin, dizüstü bilgisayarınız çalındığında veya makinenin sahibi hesabınızı kapatıp tüm dosyalarınızı yeniden kullanmaya karar verdiğinde).


8
Özel bir anahtarı kopyalamak gerçekten iyi bir fikir değildir. Birden fazla yerde tek bir anahtara sahip olmak 1. daha savunmasız hale getirir, 2. tüm konumların kontrolünü kaybetme riskinizi artırır, 3. yalnızca bir konumdan erişimi devre dışı bırakmanıza izin vermez. Güvenlik açısından her yerde yeni bir anahtar çifti oluşturmalısınız - Mu Qiao'nun çözümü.
pabouk

27

kullanım ssh-copy-id

ÖZET

ssh-copy-id [-i [identity_file]] [kullanıcı @] makine

AÇIKLAMA

ssh-copy-id, uzak bir makineye giriş yapmak ve belirtilen kimlik dosyasını bu makinenin ~ / .ssh / yetkili_keys dosyasına eklemek için ssh kullanan bir betiktir.


1
@ H2'den S1'e ssh yapmak istiyorum. Özel ve genel anahtarımı H1'den H2'ye aktarmak ve kurmak istiyorum. Bunu yapacak mı?
Bruce,

3
@Bruce hayır, h2 üzerindeki anahtarları yeniden oluşturmanız ve bu komutu anahtarlarınızı kopyalamak için kullanmanız gerekir. Başka bir yaklaşım h1 ve h2'nin ev dizinini paylaşmasına izin vermek.
Mu Qiao

9

İki özel anahtar kullan

H1'i ayarlarken yaptığınız işlemle aynı işlemi (ancak aynı özel anahtarı değil) kullanarak H2'yi ayarlayın :

  • Özel bir anahtarı başka bir makineden kopyalamak için hiçbir zaman iyi bir neden yoktur. H2'de henüz yeni bir özel anahtar oluşturmadıysanız, şimdi yapın. Ayrıca ilgili ortak anahtarı oluşturun. H2'deki bir terminalde,

yazın: ssh-keygen -t rsa

  • H2'nizin ortak anahtarını sunucuya kopyalayın. H2'deki bir terminalde,

yazın: ssh-copy-id username@S1.net

(ancak S1 ve S1'in ana bilgisayar adındaki gerçek kullanıcı adınızı kullanın ve daha sonra sorulduğunda S1'e şifrenizi yazın).

Bu, iş istasyonunuzun genel anahtarını ~/.ssh/authorized_keyssunucudaki söz konusu kullanıcının dosyasına yükler .

  • Adım 3 yoktur. Bundan sonra H2'inizden S1'e giriş yapabilir ve H1'inizden S1'e giriş yapabilirsiniz.

ayrıntılar

Sanırım gerçekten sorduğun şey

  • Bir sunucum var ("S1")
  • Sunucuma kişisel dizüstü bilgisayarımdan giriş yapıyorum ("H1")
  • Ayrıca iş istasyonumdan ("H2") sunucuma giriş yapmak istiyorum.

Bunu yapmanın doğru yolu nedir?

  • Sanırım her iki yerden da aynı parola ile giriş yapabilirim. Bu doğru yol olamaz, çünkü herkes açık anahtar kimlik doğrulamasının şifrelerden çok daha iyi olduğunu söyler. (a)
  • Sanırım özel anahtarı dizüstü bilgisayarımdan iş istasyonuma kopyalayabilirim. Bu doğru yol olamaz, çünkü herkes özel anahtarın asla müşteri makinesinden ayrılmaması gerektiğini söyler.

İnsanlar, bir sunucudaki bir hesabın tek bir kullanıcı adı ve elbette tek bir yetkili parolaya sahip olduğunu kafasına soktu.

Ssh gibi açık anahtarlı sistemler parola sisteminden daha iyidir: Bir sunucudaki bir hesabın hepsi dosyada listelenen tek bir kullanıcı adı ve herhangi bir sayıda yetkili açık anahtar vardır~/.ssh/authorized_keys .

( daha fazla detay ).



0

Ssh-copy-id sizin için işi yapar mıydı : http://linux.die.net/man/1/ssh-copy-id ?


@ H2'den S1'e ssh yapmak istiyorum. Özel ve genel anahtarımı H1'den H2'ye aktarmak ve kurmak istiyorum. Bunu yapacak mı?
Bruce,

2
Eğer ssh-copy-id kullanarak S1 veya H1'e giriş yapmışsanız (ki artık anahtarınız var) ortak anahtarınızı (özel değil) H2'ye aktarmanıza izin verecektir. Genel olarak, özel anahtarınızın kurulu olduğu makinelerin sayısını sınırlamak en iyisidir. Birkaç güvenli makinede yalnızca kaybını önlemek için tutmaya çalışın.

Özel anahtarımı H2'ye nasıl kopyalarım?
Bruce,

0

SSH anahtarlarını bir bilgisayardan diğerine değiştirmek için. Tüm klasörü sadece ~ / .ssh'dan H1'den (eski makine) yeni makine H2'nin ~ / .ssh içerik klasörüne kopyalayın.

Şimdi dene:

ssh ubuntu@13.123.43.26 (S1 ipiniz)

Büyük olasılıkla o koşuyu düzeltmek için izin uyarısı alırsınız:

chmod 400 ~ / .ssh / id_rsa

Şimdi yeniden:

ssh ubuntu@13.123.43.26 (S1 ipiniz)

Şimdi işe yarayacak.

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.