ssh anahtarlarını başka bir makineye kopyalamanın en kolay yolu?

295

Evde tembelim ve ev makinelerim için şifre kimlik doğrulaması kullanıyorum. Anahtar tabanlı kimlik doğrulamaya geçmeye hazırım. Web'de, catting dahil, daha sonra anahtarın üzerine basma, anahtarı doğrudan belirleme vb. Gibi birçok seçenek vardır.

Bir anahtarı kopyalamak için en kolay ve önerilen yolu arıyorum, umarım Ubuntu ssh paketinin bir yerinde bir rahatlık sarıcısı var mı?

şifre girişlerinin nasıl kapatılacağını zaten biliyorum.

    
sordu Jorge Castro 27.09.2010 22:24

5 cevap

407

ssh-copy-id komutu ( openssh-client paketinde ve varsayılan olarak yüklenmiş) tam olarak şunu yapar:

ssh-copy-id [email protected]

varsayılan kimliğinizin ortak anahtarını (diğer kimlikler için -i identity_file kullanın) uzak ana bilgisayara kopyalar.

Varsayılan kimlik, "standart" ssh anahtarınızdır. Anahtarın türüne bağlı olarak, ~/.ssh dizininizde, genellikle identity , id_rsa veya id_dsa (ve .pub ile aynı) olarak adlandırılan iki dosyadan (genel ve özel anahtar) oluşur. Birden fazla ssh anahtarı oluşturmadıysanız, kimliğin belirtilmesi konusunda endişelenmenize gerek yoktur, ssh-copy-id otomatik olarak seçecektir.

Bir kimliğiniz yoksa, ssh-keygen aracıyla bir tane oluşturabilirsiniz.

Ayrıca, eğer sunucu varsayılandan farklı bir port kullanıyorsa ( 22 ), bu şekilde tırnak işaretleri kullanmalısınız ( kaynak ):

ssh-copy-id "[email protected] -p <port-number>"
    
verilen cevap Marcel Stimberg 27.09.2010 23:01
112

Marcel'in cevabını beğeniyorum. Bu komutu bilmiyordum. Her zaman bir GÜNEŞ web sitesine :

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Burada yine de yayınlamayı düşündüm, çünkü ssh 'nin gücü ile kabuk kodu ' da nelerin başarılabileceğinin iyi bir örneğidir. Fakat ssh-copy-id değerini kullanmak kesinlikle doğru bir şekilde yapmanın daha güvenli bir yoludur!

.ssh klasörünün zaten mevcut olmaması durumunda, yukarıdaki komutun başarısız olacağını unutmayın. Buna ek olarak, dosya oluştururken mümkün olan en düşük düzeyde bir izin oluşturmak daha iyi olabilir (temel olarak sadece sahip için okuma-yazma). İşte daha gelişmiş bir komut:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
    
verilen cevap Huygens 12.10.2010 00:26
25

Grafiksel yöntem

  1. Uygulamalar 'ı açın Şifreler ve Anahtarlar Kişisel Anahtarlarım .
  2. Anahtarınızı seçin ve ardından Uzak Güvenli Kabuk için Anahtar Yapılandır ' ı tıklayın.

    
verilen cevap ændrük 27.09.2010 22:32
18

Ubuntu'da, tuşlarınızı Launchpad'den alabilirsiniz:

ssh-import-id [launchpad account name]

Ayrıntılar :

  1. Bir Launchpad hesabına sahip olmanız için giriş yapın veya bir hesap oluşturun
  2. Giriş yaptıktan sonra SSH tuşlarının yanındaki düğmeyi tıklayın:
  3. Ortak anahtar dosyanızın içeriğini o alana (yorum da dahil) yapıştırın. Böyle bir anahtar gibi görünüyor:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Burada, ssh-rsa anahtarın bir RSA anahtarı olduğunu, AAAAB3Nza .... UyDOFDqJp 'si gerçek anahtar ve lekensteyn ' nin yorum olduğunu belirtir.

  4. Herkese Açık Anahtar Al 'e basarak anahtarı kaydedin.
  5. Her şey yolunda giderse, anahtarınız artık SSH anahtarları altında listelenmelidir:

Uzaktaki erişilmesi gereken makinede ssh-import-id paketinin kurulu olması gerekiyor. Bu paket, openssh-server paketi için önerilen paket olduğundan openssh-server paketi ile birlikte yüklenir. % Co_de% 'nin yüklendiğinden emin olduktan sonra istemci makinede, çalıştırın:

ssh-import-id [launchpad account name]

Bu, herkese açık anahtarı, MITM saldırılarına karşı koruyan HTTPS üzerinden Launchpad sunucularından indirilecektir.

Ubuntu Lucid'de ve öncesinde, aşağıdakileri gerçekleştirebilirsiniz:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

SSH anahtarıyla hattan sonra ek bir satırsonu almak için ssh-import-id komutu gereklidir.

verilen cevap Lekensteyn 10.06.2011 21:20
12

özel bağlantı noktası için

ssh-copy-id -i "[email protected] -p2222"

-i varsayılan değeri ~ / .ssh / id_rsa.pub olarak değiştirilir, eğer başka bir anahtar isterseniz, -i

tuşunu basılı tutun.

UYARI: Eğer siz yazmamışsanız -i, ~ / .ssh

içinde bulunan tüm anahtarlarınızı kopyalayacaktır.     
verilen cevap Omar A. Shaban 08.03.2013 21:16

Etiketlerdeki diğer soruları oku