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, inclusiefHostName,User,IdentityFileenProxyJump, - 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?
- Open Terminal en voer
ssh-keygen -t ed25519uit. Druk op Return om het standaardbestand~/.ssh/id_ed25519te houden en kies een wachtwoordzin. - Voeg de openbare helft,
~/.ssh/id_ed25519.pub, toe aan~/.ssh/authorized_keysop de server, of stuur hem naar de beheerder van de server. Deel nooit het bestand zonder.pub. - Test het:
ssh user@hostmoet 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
- 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. - Voeg
-vtoe (ssh -v staging) om te zien welke sleutels en configuratieregelssshprobeert. - Controleer de agent met
ssh-add -l: die toont de sleutels die de agent vasthoudt. - Controleer de rechten:
sshweigert privésleutels die andere gebruikers kunnen lezen.chmod 600 ~/.ssh/id_ed25519lost 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.