Evde tembelim ve ev makinelerim için parola 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 var; kedi gibi girip anahtarı sshing ile göndermek, anahtarı doğrudan scping ile göndermek vb.
Bir anahtarı kopyalamanın en kolay ve önerilen yolunu arıyorum, umarım Ubuntu ssh paketinde bir yerde kolaylık sağlayan bir sarmalayıcı vardır?
Zaten şifre girişlerinin nasıl kapatılacağının farkındayım.
ssh-copy-id` komutu (openssh-client paketinde bulunur ve varsayılan olarak yüklenir) tam olarak bunu yapar:
ssh-copy-id [email protected]
varsayılan kimliğinizin açık anahtarını (diğer kimlikler için -i identity_file
kullanın) uzak ana bilgisayara kopyalar.
Varsayılan kimlik sizin "standart" ssh anahtarınızdır. Bu, ~/.ssh
dizininizdeki iki dosyadan (açık ve özel anahtar) oluşur ve anahtarın türüne bağlı olarak normalde identity
, id_rsa
, id_dsa
, id_ecdsa
veya id_ed25519
(ve .pub
ile aynı) olarak adlandırılır. Birden fazla ssh anahtarı oluşturmadıysanız, kimlik belirtme konusunda endişelenmenize gerek yoktur, ssh-copy-id bunu otomatik olarak seçecektir.
Eğer bir kimliğiniz yoksa, ssh-keygen
aracı ile bir kimlik oluşturabilirsiniz.
Ayrıca, sunucu varsayılandan (22
) farklı bir bağlantı noktası kullanıyorsa, bu şekilde tırnak işaretleri kullanmalısınız (kaynak):
ssh-copy-id "[email protected] -p <port-number>"
Marcel'in cevabını beğendim. Bu komutu bilmiyordum. Ben her zaman Oracle web sitesinde bulduklarımı kullanıyordum:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'
Yine de buraya göndermeyi düşündüm, çünkü ssh
gücüyle shell kodunda neler başarılabileceğinin iyi bir örneği. Ancak ssh-copy-id
kullanmak bunu düzgün bir şekilde yapmanın kesinlikle daha güvenli bir yoludur!
Eğer .ssh
klasörü zaten mevcut değilse, yukarıdaki komutun başarısız olacağını unutmayın. Ayrıca, dosyayı oluştururken mümkün olan en düşük izni (temel olarak yalnızca sahip için okuma-yazma) ayarlamak daha iyi olabilir. İş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"'