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 bunun nasıl yapılacağına dair birçok seçenek vardır, bunlar arasında anahtarın üzerine basılması, anahtarın doğrudan üzerine basılması vb. Yer alır.
Bir anahtarı kopyalamanın en kolay ve önerilen yolunu arıyorum, umarım Ubuntu ssh paketinde bir yerde kullanışlı bir sarıcı vardır?
Bu ssh-copy-id komut (içinde openssh istemcisi paket ve varsayılan olarak yüklenir) tam olarak bunu yapar:
ssh-copy-id user@hostname.example.com
varsayılan kimliğinizin ortak anahtarını kopyalar (kullan -i identity_file diğer kimlikler için) uzak ana bilgisayara.
Varsayılan kimlik "standart" ssh anahtarınızdır. Bilgisayarınızdaki iki dosyadan (genel ve özel anahtar) oluşur. ~/.ssh normalde adlandırılmış dizin identity, id_rsa, id_dsa, id_ecdsa veya id_ed25519 (ve aynı şey .pub), anahtarın türüne bağlı olarak. Birden fazla ssh anahtarı oluşturmadıysanız, kimliği belirtme konusunda endişelenmenize gerek yoktur, ssh-copy-ıd otomatik olarak seçecektir.
Kimliğiniz yoksa, aracı kullanarak bir kimlik oluşturabilirsiniz ssh-keygen.
Ayrıca, sunucu varsayılandan farklı bir bağlantı noktası kullanıyorsa (22) bu şekilde tırnak işaretleri kullanmalısınız (kaynak):
Hala buraya göndermeyi düşündüm, çünkü bu, neyin başarılabileceğinin iyi bir örneğidir kabuk kodu gücü ile ssh. Ama kullanarak ssh-copy-id kesinlikle doğru yapmak için daha güvenli bir yoldur!
Klasör varsa unutmayın .ssh zaten mevcut değil, yukarıdaki komut başarısız olur. Ek olarak, dosyayı oluştururken mümkün olan en düşük izni ayarlamak daha iyi olabilir (temel olarak yalnızca sahip için okuma-yazma). İşte daha gelişmiş bir komut:
Giriş yaptıktan sonra, yanındaki düğmeyi tıklayın SSH anahtarları:
Ortak anahtar dosyanızın içeriğini bu alana yapıştırın (açıklama dahil). Böyle bir anahtar şöyle görünür:
ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
Burada, ssh-rsa anahtarın bir RSA anahtarı olduğunu gösterir, AAAAB3Nza .... UyDOFDqJp gerçek anahtar ve lekensteyn yorum bu.
Tuşuna basarak kaydedin Ortak Anahtarı İçe Aktar
Her şey yolunda gittiyse, anahtarınız şimdi altında listelenmelidir SSH anahtarları:
Paket ssh-import-id uzaktan erişilmesi gereken makineye kurulması gerekiyor. Bu paket ile birlikte yüklenir openssh-server paket için önerilen bir paket olduğu için openssh-server. Bundan emin olduktan sonra ssh-import-id istemci makineye yüklendi, çalıştır:
ssh-import-id [launchpad account name]
Bu, genel anahtarı, sizi MITM saldırılarına karşı koruyan HTTPS üzerinden Launchpad sunucularından indirecektir.
Ubuntu Lucid'de ve daha önce, aynı şeyi aşağıdakilerle başarabilirsiniz:
ssh-copy-id aynen öyle yapar. Buradaki diğer cevaplardan bazılarının neden yanlış bilgi eklediğinden emin değilim. Yardım aşağıdakileri gösterir:
~$ ssh-copy-id -hUsage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]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
Ubuntu 18.04 istemcisinde CentOS 7.6 sunucusuyla aşağıdakileri denedim ve bir cazibe gibi çalıştı. Örnek, özel bir bağlantı noktası kullanarak gösterir 2222 ve bir ortak anahtar belirtme ~/.ssh/path-to-rsa.pub
Komutu çalıştırmadan önce, aslında -n komutun amaçlandığı gibi çalışacağını doğrulayan kuru bir çalışma yapmak için sonunda geçiş yapın. Bunu onayladıktan sonra, komutu yukarıdaki gibi tekrar çalıştırdım. -n değiştirmek.