Så använder AnyBucket din SSH-konfiguration

Det finns inget separat nyckellager att fylla i. För SFTP startar AnyBucket /usr/bin/ssh, samma program som Terminal använder, så:

  • dina privata nycklar i ~/.ssh fungerar,
  • nycklar som är inlästa i din SSH-agent fungerar,
  • varje Host-block i ~/.ssh/config gäller, inklusive HostName, User, IdentityFile och ProxyJump,
  • värdnycklar kontrolleras mot ~/.ssh/known_hosts, som Terminal delar.

Tumregeln: om ssh user@host fungerar i Terminal fungerar det i AnyBucket. Lösenord, när en server frågar efter ett, sparas i inloggningsnyckelringen.

Skapa en nyckel och lägg till den på servern

Om du inte har någon nyckel än:

  1. Öppna Terminal och kör ssh-keygen -t ed25519. Tryck på retur för att behålla standardfilen, ~/.ssh/id_ed25519, och välj en lösenfras.
  2. Lägg till den offentliga halvan, ~/.ssh/id_ed25519.pub, i ~/.ssh/authorized_keys på servern, eller skicka den till serverns administratör. Dela aldrig filen utan .pub.
  3. Testa: ssh user@host ska logga in utan att fråga efter serverns lösenord.

För att slippa skriva lösenfrasen varje gång lägger du till nyckeln i agenten med ssh-add. macOS kan spara lösenfrasen i din nyckelring.

Namnge dina servrar i ~/.ssh/config

Ett Host-block ger en server ett kort namn och inställningarna för att nå den:

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

Nu loggar ssh staging in som deploy med den nyckeln. I AnyBucket ansluter du till servern staging via SFTP, och samma block gäller, eftersom AnyBucket skickar namnet till ssh precis som Terminal skulle göra.

Nå en server via en hoppvärd

Många servrar kan bara nås via en bastion, eller hoppvärd (jump host). I Terminal skriver du ssh -J bastion app för en enstaka gång. Använd ProxyJump för att göra det permanent:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Testa med ssh app i Terminal. När det loggar in ansluter du AnyBucket till app via SFTP: anslutningen går genom bastionen av sig själv, utan något extra att ställa in i appen. Flera hopp kedjas på samma sätt, med en kommaseparerad lista efter ProxyJump.

Värdnycklar: ”är inte känd än” eller ”har ändrats”

Första gången du ansluter till en server finns dess nyckel inte i ~/.ssh/known_hosts än, och AnyBucket frågar innan den litar på nyckeln, precis som Terminal. Jämför fingeravtrycket med det som serverns administratör har publicerat.

Om AnyBucket säger att en nyckel har ändrats ska du stanna och ta reda på varför. Efter att en server har byggts om eller installerats om är en ny nyckel väntad. Annars ska du inte ansluta: en ändrad nyckel kan betyda att du inte pratar med den server du tror. Mer i felsökning.

När det inte fungerar

  1. Prova Terminal först med exakt det värdnamn du använder i AnyBucket: ssh staging. Om det misslyckas ligger problemet i SSH-konfigurationen, inte i appen.
  2. Lägg till -v (ssh -v staging) för att se vilka nycklar och konfigurationsrader ssh provar.
  3. Kontrollera agenten med ssh-add -l: den listar nycklarna som agenten har.
  4. Kontrollera behörigheterna: ssh vägrar använda privata nycklar som andra användare kan läsa. chmod 600 ~/.ssh/id_ed25519 löser det.

Fortfarande fast? Läs SFTP-nycklar eller hoppvärdar fungerar inte, eller mejla supporten med det som ssh -v visar, utan något privat.