Az ssh kulcsot id_rsa-nak kell nevezni?

110

Ezt a problémát néha többször felvetettem, amikor létrehoztam a szervereket kulcsos hitelesítéssel.

Arra gondoltam, hogy van-e valaki más tapasztalata. Van egy pár kulcsa az aktuális felhasználónak, amely csatlakozhat a különböző gépekhez. Mondjuk gép1 és gép2. Beillesztettem a nyilvános kulcsomat a megfelelő authorized_keys fájlba. Az első, amit az id_rsa első kulcsot és a második kulcshajlót neveztek el.

Amikor megpróbálok csatlakozni a hajlítóhoz, az alábbi kimenetet kapom a verbose ssh kapcsolattal

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).

Csak az id_rsa kulcsot kínálja, ahogy fent láthatja. Ez korrekt? Ha igen, miért? Hogyan kaphatok több kulcsot? Tudom, hogy ez egy olyan probléma, amelyet időnként látok, mert otthon több kulcs nélkül vagyok baj nélkül.

Szeretném áttekinteni azt is, hogy a kocsmák és a privát kulcsok hogyan működnek együtt az ügyfél és a kiszolgáló között. Azt gondoltam, elég tisztességes ötletem van, de látszólag hiányzik valami.

Kérem, és köszönjük.

    
készlet myusuf3 17.03.2011 16:37
forrás

3 válasz

136

Alapértelmezés szerint az ssh aid_dsa ésid_rsa fájlokat keresi. A kulcsokat nem kell ilyen módon megnevezni, csak amykey nevet is megadhatjuk, vagy akár egy másik könyvtárba is helyezzük. Ha azonban mindkettőt megteheted, akkor az ssh parancsban meg kell adnod az alábbi kulcsot:

ssh user@server -i /path/to/mykey

Ha egy parancs nem fogadja el a-i -ot, pl. sshfs, használja aIdentityFile opciót:

sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint

Hogyan működik

Kulcs létrehozásakor két fájlt kap:id_rsa (privát kulcs) ésid_rsa.pub (nyilvános kulcs). Ahogyan a neveik azt sugallják, a titkos kulcsot titokban kell tartani, és a nyilvános kulcs közzétehető a nyilvánosság számára.

A nyilvános kulcsú hitelesítés nyilvános és privát kulcsokkal működik. Mind az ügyfél, mind a szerver saját kulcsokkal rendelkezik. openssh-server telepítésekor a kiszolgáló nyilvános és privát kulcsjai automatikusan létrehozásra kerülnek. Az ügyfél számára önállóan kell ezt tennie.

Ha (kliens) a szerverrel csatlakozik, a nyilvános kulcsok cseréjére kerül sor. A szervereket fogod kapni, és a szerver a tiéd. Az első alkalommal, amikor megkapja a szerver nyilvános kulcsát, megkérjük, fogadja el. Ha ez a nyilvános kulcs egy időben változik, akkor figyelmeztetni fogják, mert lehetséges egy MITM (Man in the middle) támadás, amely elfogja az ügyfél és a kiszolgáló közötti forgalmat.

A kiszolgáló ellenőrzi, hogy engedélyezni tudják-e a kapcsolatot (/etc/ssh/sshd_config -ban definiálva), és ha a nyilvános kulcs a~/.ssh/authorized_keys fájlban szerepel. A nyilvános kulcs visszautasításának lehetséges okai:

  • /etc/ssh/sshd_config:
    • A (z)AllowUsers vagyAllowGroups meg van adva, de a kiszolgálói felhasználó nincs felsorolva a csoportok vagy a felhasználók listájában (az alapértelmezett nem definiált, és nem korlátozza a felhasználókat vagy a csoportokat a bejelentkezésből).
    • DenyUsers vagyDenyGroups van megadva, és a felhasználók vagy a csoportok listája.
    • Gyorsként próbál bejelentkezni, de a (z)PermitRootLogin beállításaNo (alapértelmezettyes).
    • A (z)PubkeyAuthentication beállítása:No (alapértelmezettyes).
    • A (z)AuthorizedKeysFile egy másik helyre van állítva, és a nyilvános kulcsok nem kerülnek hozzá a fájlhoz (alapértelmezett.ssh/authorized_keys, az otthoni címhez viszonyítva)
  • ~/.ssh/authorized_keys: a nyilvános kulcs nincs hozzáadva ebben a fájlban (vegye figyelembe, hogy ez a fájl root felhasználóként szerepel)

Több billentyű használata

Nem ritka több kulcs használata. Assh user@host -i /path/to/identity_file futása helyett konfigurációs fájlt használhat,~/.ssh/config.

A közös beállítások az IdentityFile (a kulcsok) és a port. A következő konfiguráció az "id_dsa" és a "bender" csak akkor ellenőrzött, ha assh youruser@yourhost:

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

Ha figyelmen kívül hagyja aHost yourhost értéket, a beállítások minden SSH kapcsolatra vonatkoznak. A gazdagéphez más opciók is megadhatók, például aUser youruser, aPort 2222 stb. Ez lehetővé teszi, hogy assh yourhost helyett assh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender helyett a rövidítéshez kapcsolódjon.

    

válasz adott Lekensteyn 17.03.2011 16:58
forrás
30

A kedvenc módom lehetővé teszi a privát kulcs automatikus kiválasztását

IdentityFile ~/.ssh/%l_%r@%h_id_rsa

Az SSH helyettesíti a% l-et a helyi gépnévvel,% r a távoli felhasználónévvel és% h a távoli gazdagéppel, így ha a foo-ról a barra a gépemre szeretnék kapcsolódni, futtatom:

ssh bar

És az ssh automatikusan használja:

~/.ssh/foo_user@bar_id_rsa

Ahogy a helyi gazda is tárolódik, ez lehetővé teszi az NFS-n megosztott kezdőkönyvtárakat (gépenként különböző kulcsokat!), vagy akár azonosítani, hogy melyik gépen volt a kulcs ...

    
válasz adott Viperfang 19.02.2014 19:54
forrás
0

Figyelembe véve StevenRoose azon észrevételét, hogy hosszabb ideig kell meghatároznia a kulcsokat, és sok kulcskal játszom, szeretnék javaslatot tenni személyes megoldására.

Hozzon létre egy szimbolikus linket a kulcsra, amelyet használni akarok abban az időben, és mivel ez csak ritkán változik attól függően, hogy melyik projekten dolgozom, elégedett vagyok vele.

Itt kapcsolódtam a kulcsszavához a virtuális doboz alatt futó gépekhez:

$ 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

Egy nagyon gyors parancsfájlt is hozzáadhatunk egy másik készlethez, anélkül, hogy manuálisan újra be kellene írnunk a ln parancsot.

Ismét ez nem megoldás csak két kulcs számára, de nagyobb szám esetén működhet.

    
válasz adott ajhcasual 04.10.2013 16:43
forrás