ssh anahtarının id_rsa olarak adlandırılması gerekiyor mu?

110

Kilitli kimlik doğrulaması olan yapı sunucuları oluştururken bu sorunu birkaç kez karşılaştım.

Başka birinin bunu deneyip deneyimlemediğini merak ediyordum. Mevcut kullanıcı için farklı makinelere bağlanabilen birkaç anahtarım var. Makine1 ve makine2 diyelim. Genel anahtarımı kendi yetkili_tr'ler dosyasına yapıştırdım. İlk anahtar id_rsa ve ikinci anahtar bender adını verdim.

Bender'a bağlanmayı denediğimde, aşağıdaki çıktıyı ayrıntılı bir şekilde ssh bağlantım ile elde ediyorum

debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/bozo/.ssh/.ssh/identity
debug1: Trying private key: /home/bozo/.ssh/.ssh/id_rsa
debug1: Trying private key: /home/bozo/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

Yukarıda gördüğünüz gibi sadece id_rsa anahtarını sunar. Bu doğru mu? Öyleyse neden? Daha fazla anahtar sunmak için nasıl alabilirim? Biliyorum, aralıklı olarak gördüğüm bir problem, çünkü evde çok fazla sorun olmadan çok anahtarım var.

Ayrıca, pub ve özel anahtarların istemci ve sunucuyla nasıl etkileşime girdiğine genel bir bakış atmanızı isterim. Oldukça iyi bir fikrim olduğunu düşünmüştüm ama görünüşe göre bir şeyleri özlüyorum.

Lütfen ve teşekkür ederim.

    
sordu myusuf3 17.03.2011 16:37

3 cevap

136

Varsayılan olarak, ssh id_dsa ve id_rsa dosyalarını arar. Anahtarların böyle adlandırılması gerekmez, bunu mykey olarak da adlandırabilir veya hatta farklı bir dizine yerleştirebilirsiniz. Ancak, bunlardan herhangi birini yaparsanız, ssh komutundaki anahtarı açıkça belirtmeniz gerekir:

ssh [email protected] -i /path/to/mykey

Bir komut -i değerini kabul etmezse, ör. sshfs , IdentityFile seçeneğini kullanın:

sshfs -o IdentityFile=/path/to/mykey [email protected]:/path/on/remote /mountpoint

Nasıl Çalışır

Bir anahtar oluştururken, iki dosya alırsınız: id_rsa (özel anahtar) ve id_rsa.pub (genel anahtar). İsimlerinden de anlaşılacağı gibi, özel anahtar gizli tutulmalı ve kamu anahtarı halka yayınlanabilecektir.

Ortak anahtar kimlik doğrulaması, bir genel ve özel anahtarla çalışır. Hem istemci hem de sunucunun kendi anahtarları var. % Co_de% yüklenirken sunucu genel ve özel anahtarlar otomatik olarak oluşturulur. Müşteri için bunu kendi başınıza yapmalısınız.

Siz (istemci) bir sunucuyla bağlantı kurduğunuzda, ortak anahtarlar değiştirilir. Sunucuları bir ve sunucu siz alırsınız. Sunucu genel anahtarını ilk kez aldığınızda bunu kabul etmeniz istenir. Bu genel anahtar bir süre içinde değişirse, olası bir MITM (ortadaki adam) saldırısının devam etmesi ve istemci ile sunucu arasındaki trafiğin engellenmesi nedeniyle uyarılırsınız.

Sunucu, bağlanmanıza ( openssh-server olarak tanımlandı) ve ortak anahtarın /etc/ssh/sshd_config dosyasında listelenip listelenmediğine bakar. Genel anahtarın reddedilmesinin olası nedenleri:

  • % Co_de%:
    • ~/.ssh/authorized_keys veya /etc/ssh/sshd_config belirtildi, ancak sunucu kullanıcınız gruplar veya kullanıcı listesinde listelenmiyor (varsayılan tanımlı değil, kullanıcılara veya gruplara giriş yapmak için herhangi bir kısıtlama getirmiyor).
    • AllowUsers veya AllowGroups belirtildi ve kullanıcılar veya gruplar listesindesiniz.
    • Kök olarak oturum açmaya çalışıyorsunuz, ancak DenyUsers , DenyGroups (varsayılan PermitRootLogin ) olarak ayarlandı.
    • No , yes (varsayılan PubkeyAuthentication ) olarak ayarlandı.
    • No farklı bir konuma ayarlandı ve ortak anahtarlar bu dosyaya eklenmedi (varsayılan yes , ev dizinine göre)
  • AuthorizedKeysFile : ortak anahtarınız bu dosyaya eklenmedi (bu dosyanın root kullanıcısı olarak okunduğuna dikkat edin)

Birden çok anahtarı kullanma

Birden çok tuş kullanmanız nadir değildir. % Co_de% dosyasını çalıştırmak yerine, bir yapılandırma dosyası kullanabilirsiniz, .ssh/authorized_keys .

Ortak ayarlar IdentityFile (anahtarlar) ve bağlantı noktasıdır. Bir sonraki yapılandırma "id_dsa" ve "bender" ı yalnızca ~/.ssh/authorized_keys ile bağlanırken kontrol edecektir:

Host yourhost
   IdentityFile ~/.ssh/id_dsa
   IdentityFile ~/.ssh/bender

ssh [email protected] -i /path/to/identity_file değerini çıkarırsanız, ayarlar tüm SSH bağlantılarına uygulanır. Bu eşleşme eşleşmesi için ~/.ssh/config , ssh [email protected] vb. Gibi diğer seçenekler de belirtilebilir. Bu, Host yourhost yerine shorthand User youruser ile bağlanmanıza olanak tanır.

    
verilen cevap Lekensteyn 17.03.2011 16:58
30

Favori yöntemim, özel anahtarın otomatik olarak seçilmesine izin verir

IdentityFile ~/.ssh/%l_%[email protected]%h_id_rsa

SSH,% l yerine yerel makine adı, uzak kullanıcı adıyla% r ve uzak ana bilgisayarla% yerini alacak, böylece foo olarak adlandırılan makinemden kullanıcı olarak çubuğa bağlanmak istesem, şunu çalıştırırım:

ssh bar

Ve ssh otomatik olarak kullanacaktır:

~/.ssh/[email protected]_id_rsa

Yerel ana bilgisayar da depolandığı için, bu, NFS üzerinden paylaşılan ana dizinlerin (makine başına farklı anahtar!) veya hatta anahtarın hangi makinede olması gerektiğini belirlemeye bile izin verir ...

    
verilen cevap Viperfang 19.02.2014 19:54
0

StevenRoose'un yorumunda, birçok anahtarı belirtmenin daha uzun sürdüğünü ve çok fazla anahtarla uğraştığımı düşünerek, kişisel çözümümüzü önermek istiyorum.

Zamanında kullanmak istediğim anahtara bir sembolik link yapıyorum ve bu sadece üzerinde çalıştığım projeye bağlı olarak nadiren değiştiği için ben de bundan memnunum.

Burada sanal kutu altında çalışan makineler için anahtarlarıma bağlandım:

$ cd .ssh/
$ ln -s adam_vbox-id_rsa.pub id_rsa.pub
$ ln -s adam_vbox-id_rsa id_rsa

$ ls -l
total 12
-rw------- 1 adam adam 1675 2013-10-04 02:04 adam_vbox-id_rsa
-rw-r--r-- 1 adam adam  396 2013-10-04 02:04 adam_vbox-id_rsa.pub
lrwxrwxrwx 1 adam adam   16 2013-10-04 02:17 id_rsa -> adam_vbox-id_rsa
lrwxrwxrwx 1 adam adam   20 2013-10-04 02:17 id_rsa.pub -> adam_vbox-id_rsa.pub
-rw-r--r-- 1 adam adam 3094 2013-10-04 02:09 known_hosts

Ayrıca, ln komutunu tekrar manuel olarak yazmak zorunda kalmadan başka bir kümeye geçmek için gerçekten hızlı bir komut dosyası da eklenebilir.

Yine, bu sadece iki anahtar için bir çözüm değildir, ancak daha fazla sayıda, uygulanabilir olabilir.

    
verilen cevap ajhcasual 04.10.2013 16:43

Etiketlerdeki diğer soruları oku