Comment AnyBucket utilise votre configuration SSH

Aucun magasin de clés séparé à remplir. Pour SFTP, AnyBucket lance /usr/bin/ssh, le même programme que Terminal. Ainsi :

  • vos clés privées dans ~/.ssh fonctionnent,
  • les clés chargées dans votre agent SSH fonctionnent,
  • chaque bloc Host de ~/.ssh/config s’applique, y compris HostName, User, IdentityFile et ProxyJump,
  • les clés d’hôte sont vérifiées dans ~/.ssh/known_hosts, que Terminal partage.

La règle à retenir : si ssh user@host fonctionne dans Terminal, cela fonctionne dans AnyBucket. Les mots de passe, quand un serveur en demande un, sont enregistrés dans votre trousseau de session.

Créer une clé et l’ajouter au serveur

Si vous n’avez pas encore de clé :

  1. Ouvrez Terminal et exécutez ssh-keygen -t ed25519. Appuyez sur Retour pour garder le fichier par défaut, ~/.ssh/id_ed25519, et choisissez une phrase de passe.
  2. Ajoutez la moitié publique, ~/.ssh/id_ed25519.pub, à ~/.ssh/authorized_keys sur le serveur, ou envoyez-la à l’administrateur du serveur. Ne partagez jamais le fichier sans .pub.
  3. Testez : ssh user@host doit vous connecter sans demander le mot de passe du serveur.

Pour ne pas taper la phrase de passe à chaque fois, ajoutez la clé à votre agent avec ssh-add. macOS peut garder la phrase de passe dans votre trousseau.

Nommer vos serveurs dans ~/.ssh/config

Un bloc Host donne à un serveur un nom court et les réglages pour l’atteindre :

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

Désormais, ssh staging se connecte en tant que deploy avec cette clé. Dans AnyBucket, connectez-vous au serveur staging en SFTP et le même bloc s’applique, car AnyBucket transmet le nom à ssh comme le ferait Terminal.

Atteindre un serveur via un hôte de rebond

Beaucoup de serveurs ne sont accessibles que via un bastion, ou hôte de rebond (jump host). Dans Terminal, vous écririez ssh -J bastion app pour une fois. Pour que ce soit permanent, utilisez ProxyJump :

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Testez avec ssh app dans Terminal. Une fois la connexion établie, connectez AnyBucket à app en SFTP : la connexion passe d’elle-même par le bastion, sans rien à régler dans l’app. Plusieurs rebonds s’enchaînent de la même façon, avec une liste séparée par des virgules après ProxyJump.

Clés d’hôte : « pas encore connue » ou « modifiée »

La première fois que vous vous connectez à un serveur, sa clé n’est pas encore dans ~/.ssh/known_hosts, et AnyBucket demande avant de lui faire confiance, comme Terminal. Comparez l’empreinte avec celle publiée par l’administrateur du serveur.

Si AnyBucket indique qu’une clé a changé, arrêtez-vous et cherchez pourquoi. Après la reconstruction ou la réinstallation d’un serveur, une nouvelle clé est normale. Sinon, ne vous connectez pas : une clé modifiée peut signifier que vous ne parlez pas au serveur que vous croyez. Plus de détails dans dépannage.

Quand ça ne marche pas

  1. Essayez d’abord Terminal avec exactement le nom d’hôte utilisé dans AnyBucket : ssh staging. Si cela échoue, le problème vient de la configuration SSH, pas de l’app.
  2. Ajoutez -v (ssh -v staging) pour voir quelles clés et quelles lignes de configuration ssh essaie.
  3. Vérifiez l’agent avec ssh-add -l : il liste les clés que l’agent détient.
  4. Vérifiez les permissions : ssh refuse les clés privées lisibles par d’autres utilisateurs. chmod 600 ~/.ssh/id_ed25519 règle ce problème.

Toujours bloqué ? Voir Les clés SFTP ou les hôtes de rebond ne fonctionnent pas, ou écrivez à l’assistance avec ce qu’affiche ssh -v, sans rien de privé.