Hogyan használja az AnyBucket az SSH-beállításaidat

Nincs külön kulcstár, amelyet fel kellene töltened. SFTP-hez az AnyBucket a /usr/bin/ssh programot indítja el, ugyanazt, amelyet a Terminal is használ, ezért:

  • működnek a ~/.ssh mappában lévő privát kulcsaid,
  • működnek az SSH-ügynöködbe betöltött kulcsok,
  • érvényes a ~/.ssh/config minden Host blokkja, a HostName, a User, az IdentityFile és a ProxyJump beállítással együtt,
  • a gépkulcsokat a ~/.ssh/known_hosts alapján ellenőrzi, amelyen a Terminallal osztozik.

Az ökölszabály: ha az ssh user@host működik a Terminalban, akkor az AnyBucketben is működik. A jelszavak, ha egy szerver kér ilyet, a bejelentkezési kulcskarikádba kerülnek.

Kulcs létrehozása és hozzáadása a szerverhez

Ha még nincs kulcsod:

  1. Nyisd meg a Terminalt, és futtasd az ssh-keygen -t ed25519 parancsot. A Return megnyomásával tartsd meg az alapértelmezett ~/.ssh/id_ed25519 fájlt, és válassz egy jelmondatot.
  2. A nyilvános felet, a ~/.ssh/id_ed25519.pub fájlt add hozzá a szerveren a ~/.ssh/authorized_keys fájlhoz, vagy küldd el a szerver rendszergazdájának. A .pub nélküli fájlt soha ne add ki senkinek.
  3. Próbáld ki: az ssh user@host parancsnak a szerver jelszavának bekérése nélkül kell bejelentkeznie.

Hogy ne kelljen minden alkalommal begépelned a jelmondatot, add hozzá a kulcsot az ügynöködhöz az ssh-add paranccsal. A macOS a jelmondatot a kulcskarikádban is meg tudja őrizni.

Szervereid elnevezése a ~/.ssh/config fájlban

Egy Host blokk rövid nevet ad egy szervernek, és megadja, hogyan érhető el:

Host staging
  HostName staging.example.com
  User deploy
  IdentityFile ~/.ssh/id_ed25519

Mostantól az ssh staging ezzel a kulccsal, deploy felhasználóként jelentkezik be. Az AnyBucketben kapcsolódj SFTP-n a staging szerverhez, és ugyanez a blok érvényes, mert az AnyBucket pontosan úgy adja át a nevet az ssh programnak, ahogy a Terminal tenné.

Szerver elérése jump hoston keresztül

Sok szerver csak egy bástyagépen, más néven jump hoston keresztül érhető el. A Terminalban egyszeri alkalomra az ssh -J bastion app parancsot írnád. Hogy tartós legyen, használd a ProxyJump beállítást:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Próbáld ki a Terminalban az ssh app paranccsal. Ha bejelentkezik, kapcsold az AnyBucketet SFTP-n az app géphez: a kapcsolat magától a bástyagépen át megy, az appban semmi mást nem kell beállítanod. Több ugrás ugyanígy fűzhető össze, a ProxyJump után vesszővel elválasztott listával.

Gépkulcsok: „még nem ismert” vagy „megváltozott”

Amikor először kapcsolódsz egy szerverhez, a kulcsa még nincs a ~/.ssh/known_hosts fájlban, ezért az AnyBucket a Terminalhoz hasonlóan rákérdez, mielőtt megbízna benne. Vesd össze az ujjlenyomatot azzal, amelyet a szerver rendszergazdája közzétett.

Ha az AnyBucket azt jelzi, hogy egy kulcs megváltozott, állj meg, és derítsd ki, miért. Egy szerver újraépítése vagy újratelepítése után új kulcs várható. Ellenkező esetben ne kapcsolódj: a megváltozott kulcs azt is jelentheti, hogy nem azzal a szerverrel beszélsz, amelyikre gondolsz. Bővebben a hibaelhárításban.

Ha nem működik

  1. Először próbáld a Terminalban pontosan azzal a gépnévvel, amelyet az AnyBucketben használsz: ssh staging. Ha ez sem sikerül, a hiba az SSH-beállításokban van, nem az appban.
  2. Add hozzá a -v kapcsolót (ssh -v staging), hogy lásd, mely kulcsokat és konfigurációs sorokat próbálja az ssh.
  3. Ellenőrizd az ügynököt az ssh-add -l paranccsal: felsorolja az ügynökben lévő kulcsokat.
  4. Ellenőrizd a jogosultságokat: az ssh elutasítja azokat a privát kulcsokat, amelyeket más felhasználók is olvashatnak. Ezt a chmod 600 ~/.ssh/id_ed25519 megoldja.

Még mindig elakadtál? Lásd: nem működnek az SFTP-kulcsok vagy a jump hostok, vagy írj a támogatásnak, mit mutat az ssh -v, a privát adatok nélkül.