Hoe AnyBucket je SSH-instellingen gebruikt

Er is geen aparte sleutelopslag om te vullen. Voor SFTP start AnyBucket /usr/bin/ssh, hetzelfde programma dat Terminal gebruikt, dus:

  • werken je privésleutels in ~/.ssh,
  • werken de sleutels die in je SSH-agent geladen zijn,
  • geldt elk Host-blok in ~/.ssh/config, inclusief HostName, User, IdentityFile en ProxyJump,
  • worden hostsleutels gecontroleerd tegen ~/.ssh/known_hosts, die je deelt met Terminal.

De vuistregel: als ssh user@host werkt in Terminal, werkt het ook in AnyBucket. Wachtwoorden, als een server erom vraagt, gaan naar je inlogsleutelhanger.

Een sleutel maken en op de server zetten

Heb je nog geen sleutel?

  1. Open Terminal en voer ssh-keygen -t ed25519 uit. Druk op Return om het standaardbestand ~/.ssh/id_ed25519 te houden en kies een wachtwoordzin.
  2. Voeg de openbare helft, ~/.ssh/id_ed25519.pub, toe aan ~/.ssh/authorized_keys op de server, of stuur hem naar de beheerder van de server. Deel nooit het bestand zonder .pub.
  3. Test het: ssh user@host moet inloggen zonder om het wachtwoord van de server te vragen.

Wil je de wachtwoordzin niet elke keer typen, voeg de sleutel dan toe aan je agent met ssh-add. macOS kan de wachtwoordzin in je sleutelhanger bewaren.

Geef je servers een naam in ~/.ssh/config

Een Host-blok geeft een server een korte naam en de instellingen om hem te bereiken:

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

Nu logt ssh staging in als deploy met die sleutel. Maak in AnyBucket via SFTP verbinding met de server staging en hetzelfde blok geldt, omdat AnyBucket de naam net als Terminal aan ssh doorgeeft.

Een server bereiken via een jumphost

Veel servers zijn alleen bereikbaar via een bastion- of jumphost. In Terminal schrijf je voor één keer ssh -J bastion app. Om het blijvend te maken, gebruik je ProxyJump:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Test met ssh app in Terminal. Zodra dat inlogt, verbind je AnyBucket via SFTP met app: de verbinding loopt vanzelf via de bastionhost, zonder dat je in de app iets hoeft in te stellen. Meerdere sprongen koppel je op dezelfde manier, met een door komma's gescheiden lijst na ProxyJump.

Hostsleutels: ‘nog niet bekend’ of ‘gewijzigd’

De eerste keer dat je verbinding maakt met een server, staat zijn sleutel nog niet in ~/.ssh/known_hosts, en vraagt AnyBucket het eerst voordat het hem vertrouwt, net als Terminal. Vergelijk de vingerafdruk met die van de beheerder van je server.

Meldt AnyBucket dat een sleutel gewijzigd is, stop dan en zoek uit waarom. Nadat een server opnieuw is opgebouwd of geïnstalleerd, is een nieuwe sleutel te verwachten. Anders: maak geen verbinding. Een gewijzigde sleutel kan betekenen dat je niet praat met de server die je denkt. Meer bij probleemoplossing.

Als het niet werkt

  1. Probeer eerst Terminal met precies de hostnaam die je in AnyBucket gebruikt: ssh staging. Mislukt dat, dan zit het probleem in de SSH-instellingen, niet in de app.
  2. Voeg -v toe (ssh -v staging) om te zien welke sleutels en configuratieregels ssh probeert.
  3. Controleer de agent met ssh-add -l: die toont de sleutels die de agent vasthoudt.
  4. Controleer de rechten: ssh weigert privésleutels die andere gebruikers kunnen lezen. chmod 600 ~/.ssh/id_ed25519 lost dat op.

Kom je er nog niet uit? Zie SFTP-sleutels of jumphosts werken niet, of mail support met wat ssh -v laat zien, zonder privégegevens.