it-swarm-tr.com

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

Evde tembelim ve ev makinelerim için parola doğrulaması kullanıyorum. Anahtar tabanlı kimlik doğrulamaya geçmeye hazırım. Web’de bunun nasıl yapılacağına ilişkin birçok seçenek vardır, bunlar arasında kedilerin yakalanması, sonra da anahtarın üzerine kaydırılması, anahtarın doğrudan kaydırılması vb.

Bir anahtarı kopyalamanın en kolay ve tavsiye edilen yolunu arıyorum, umarım Ubuntu ssh paketinin herhangi bir yerinde kolaylık sağlayan bir paket var?

Zaten farkındayım parola girişlerini nasıl kapatacağım .

337
Jorge Castro

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 genel 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. Normalde identity, ~/.ssh, id_rsa, id_dsa, id_ecdsa, id_ed25519 dizininizdeki iki dosyadan (genel ve özel anahtar) oluşur Anahtar türüne bağlı olarak _ (ve .pub ile aynı). Birden fazla ssh anahtarı oluşturmadıysanız, kimliği belirtmek konusunda endişelenmenize gerek yoktur, ssh-copy-id sadece otomatik olarak seçecektir.

Kimliğiniz yoksa, ssh-keygen aracı ile bir tane oluşturabilirsiniz.

Ayrıca, sunucu varsayılan olandan farklı bir bağlantı noktası kullanıyorsa (22) bu şekilde tırnak işareti kullanmalısınız ( source ):

ssh-copy-id "[email protected] -p <port-number>"
457
Marcel Stimberg

Marcel'in cevabını seviyorum. Bu komutu bilmiyordum. Her zaman bir buldum --- Sun web site :

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

Onu buraya hala göndermeyi düşündüm, çünkü Shell kodunda ssh gücüyle elde edilebilecek şeyin iyi bir örneğidir. Ancak, ssh-copy-id kullanmak kesinlikle doğru şekilde yapmanın daha güvenli bir yoludur!

Eğer .ssh klasörü mevcut değilse, yukarıdaki komutun başarısız olacağını unutmayın. Ayrıca, asgari izin ayarlamak için dosyayı oluştururken daha iyi olabilir (temelde sadece sahibi 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"'
128
Huygens

Grafik yöntemi

  1. Açık ygulamalarŞifreler ve AnahtarlarKişisel Anahtarlarım.
  2. Anahtarınızı seçin ve ardından zakGüvenli Kabuk için Anahtar Yapılandır öğesini tıklayın.

Set Up Computer for SSH Connection

29
ændrük

Ubuntu'da anahtarlarınızı Launchpad'den alabilirsiniz:

ssh-import-id [launchpad account name]

Detaylar :

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

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Burada, ssh-rsa, anahtarın bir RSA anahtarı olduğunu gösterir, AAAAB3Nza .... UyDOFDqJp, gerçek anahtardır ve lekensteyn yorumdur.

  4. tuşuna basarak anahtarı kaydedin. Genel Anahtarı İçe Aktar
  5. Her şey yolunda giderse, anahtarınız şimdi SSH anahtarları altında listelenmelidir:

ssh-import-id paketinin uzaktan kumandadan erişilmesi gereken makineye kurulması gerekiyor. Bu paket, openssh-server paketi ile birlikte önerilir, çünkü openssh-server için önerilir. ssh-import-id'un yüklendiğinden emin olduktan sonra İstemci makinede, şunu çalıştırın:

ssh-import-id [launchpad account name]

Bu, genel anahtarı, sizi MITM saldırılarından koruyan HTTPS üzerinden Launchpad sunucularından indirir.

Ubuntu Lucid'de ve öncesinde, aynısını başarabilirsiniz:

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

SSH anahtarının satırından sonra yeni bir satırsonu almak için echo komutu gerekir.

18
Lekensteyn

özel bağlantı noktası için

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

-i varsayılanları değiştirir ~/.ssh/id_rsa.pub, eğer başka bir anahtar istiyorsanız, -i'den sonra anahtarın yolunu girin

WARNING: -i yazmadıysanız, ~/.ssh konumunda bulunan tüm anahtarlarınızı kopyalar.

13
Omar S.

ssh-copy-id tam olarak bunu yapar. Buradaki diğer cevapların bazılarının neden yanlış bilgi eklediğinden emin değilim. Yardım aşağıdakileri gösterir:

~$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [[email protected]]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help

Sadece bir CentOS 7.6 sunucusuyla Ubuntu 18.04 istemcisinde aşağıdakileri denedim ve cazibe gibi çalıştı. Örnek, özel bir 2222 bağlantı noktasının kullanıldığını ve ~/.ssh/path-to-rsa.pub konumunda bir genel anahtar kullanıldığını gösterir.

$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 [email protected]

Komutu çalıştırmadan önce, komutun amacına göre çalışacağını doğrulayan kuru bir işlem yapmak için sonunda -n anahtarını kullandım. Onayladıktan sonra, komutu tekrar -n anahtarı olmadan çalıştırdım.

0
isapir