Wie AnyBucket dein SSH-Setup nutzt
Es gibt keinen eigenen Schlüsselspeicher, den du befüllen musst. Für SFTP startet AnyBucket /usr/bin/ssh, dasselbe Programm, das das Terminal nutzt. Deshalb:
- funktionieren deine privaten Schlüssel in
~/.ssh, - funktionieren die Schlüssel, die in deinem SSH-Agent geladen sind,
- gilt jeder
Host-Block in~/.ssh/config, mitHostName,User,IdentityFileundProxyJump, - werden Host-Schlüssel gegen
~/.ssh/known_hostsgeprüft, die du dir mit dem Terminal teilst.
Die Faustregel: Wenn ssh user@host im Terminal funktioniert, funktioniert es auch in AnyBucket. Passwörter, falls ein Server eins verlangt, landen in deinem Anmeldeschlüsselbund.
Einen Schlüssel erzeugen und auf den Server bringen
Falls du noch keinen Schlüssel hast:
- Öffne das Terminal und führe
ssh-keygen -t ed25519aus. Drücke den Zeilenschalter, um die Standarddatei~/.ssh/id_ed25519zu behalten, und wähle eine Passphrase. - Füge die öffentliche Hälfte,
~/.ssh/id_ed25519.pub, auf dem Server zu~/.ssh/authorized_keyshinzu, oder schick sie dem Administrator des Servers. Gib die Datei ohne.pubniemals weiter. - Teste es:
ssh user@hostsollte dich anmelden, ohne nach dem Passwort des Servers zu fragen.
Damit du die Passphrase nicht jedes Mal eintippen musst, füge den Schlüssel mit ssh-add deinem Agent hinzu. macOS kann die Passphrase in deinem Schlüsselbund aufbewahren.
Deinen Servern in ~/.ssh/config Namen geben
Ein Host-Block gibt einem Server einen kurzen Namen und die Einstellungen, um ihn zu erreichen:
Host staging
HostName staging.example.com
User deploy
IdentityFile ~/.ssh/id_ed25519
Jetzt meldet dich ssh staging als deploy mit diesem Schlüssel an. Verbinde dich in AnyBucket per SFTP mit dem Server staging, und derselbe Block gilt, weil AnyBucket den Namen genau wie das Terminal an ssh weitergibt.
Einen Server über einen Jump-Host erreichen
Viele Server sind nur über einen Bastion- oder Jump-Host erreichbar. Im Terminal schreibst du für ein einzelnes Mal ssh -J bastion app. Dauerhaft geht es mit ProxyJump:
Host bastion
HostName bastion.example.com
User me
Host app
HostName 10.0.1.20
User deploy
ProxyJump bastion
Teste es mit ssh app im Terminal. Sobald die Anmeldung klappt, verbinde AnyBucket per SFTP mit app: Die Verbindung läuft von selbst über den Bastion-Host, ohne dass du in der App etwas einstellen musst. Mehrere Sprünge verkettest du genauso, mit einer durch Kommas getrennten Liste nach ProxyJump.
Host-Schlüssel: „noch nicht bekannt“ oder „geändert“
Beim ersten Verbinden mit einem Server steht sein Schlüssel noch nicht in ~/.ssh/known_hosts, und AnyBucket fragt, bevor es ihm vertraut, wie das Terminal. Vergleich den Fingerabdruck mit dem, den der Administrator des Servers veröffentlicht hat.
Meldet AnyBucket, dass sich ein Schlüssel geändert hat, halte an und finde heraus, warum. Nachdem ein Server neu aufgesetzt oder neu installiert wurde, ist ein neuer Schlüssel zu erwarten. Andernfalls verbinde dich nicht: Ein geänderter Schlüssel kann bedeuten, dass du nicht mit dem Server sprichst, den du meinst. Mehr unter Fehlerbehebung.
Wenn es nicht funktioniert
- Probier es zuerst im Terminal, mit genau dem Hostnamen, den du in AnyBucket nutzt:
ssh staging. Schlägt das fehl, liegt das Problem im SSH-Setup, nicht in der App. - Hänge
-van (ssh -v staging), um zu sehen, welche Schlüssel und Konfigurationszeilensshprobiert. - Prüf den Agent mit
ssh-add -l: Er listet die Schlüssel auf, die der Agent hält. - Prüf die Zugriffsrechte:
sshlehnt private Schlüssel ab, die andere Benutzer lesen können.chmod 600 ~/.ssh/id_ed25519behebt das.
Kommst du nicht weiter? Sieh dir SFTP-Schlüssel oder Jump-Hosts funktionieren nicht an, oder schreib dem Support eine E-Mail mit dem, was ssh -v zeigt, ohne private Angaben.