SSH::Connection
Connexion SSH isolée vers un hôte distant.
Contrairement à un ssh lancé à la main, cette connexion ignore
totalement l'environnement utilisateur :
~/.ssh/confign'est pas lu (-F /dev/null)~/.ssh/known_hostsn'est pas lu ni écrit (UserKnownHostsFile=/dev/null,GlobalKnownHostsFile=/dev/null)ssh-agentest ignoré (IdentityAgent=none)- seule la clé passée en
identity_fileest essayée (IdentitiesOnly=yes) - aucun prompt interactif n'est possible (
BatchMode=yes: ni mot de passe, ni keyboard-interactive, ni confirmation de clé) - les changements de clé d'hôte ne bloquent pas
(
StrictHostKeyChecking=no) — adapté aux flows rescue/bootstrap où la clé change à chaque reboot
Conséquence pratique : deux postes avec des configurations ssh différentes exécuteront le même code de la même manière. Aucune pollution croisée avec les sessions interactives de l'utilisateur.
Sécurité : StrictHostKeyChecking=no laisse théoriquement la
porte à un MITM entre le poste et l'hôte distant. Ce wrapper est
prévu pour des outils de provisioning qui parlent à des rescue ou
des images fraîchement installées — contextes où la clé d'hôte
n'est de toute façon pas stable. Si vous avez besoin de vérifier
une clé d'hôte stable, utilisez ssh directement, pas ce shard.
Constants
Options ssh forcées sur toutes les connexions. L'appelant peut
ajouter des options via le paramètre options, mais celles-ci
ne peuvent pas être écrasées (elles sont ajoutées après pour
gagner par ordre d'apparition côté ssh -o).
Constructors
Crée une connexion vers host pour l'utilisateur user sur le
port port. Si identity_file est fourni, il est passé en -i
et aucune autre clé n'est essayée (grâce à IdentitiesOnly=yes).
Sinon aucune clé n'est fournie → l'auth publickey échouera avec
un message clair (cas « pas de clé résoluble »).
Instance methods
Récupère un fichier distant via scp.
Exécute une commande distante. Lève CommandFailed si
exit_code != 0, sauf si raise_on_error: false.
stdin : contenu à piper sur l'entrée standard distante. Quand
fourni, on n'ajoute pas -n à l'appel ssh (sinon le pipe est
court-circuité). Quand absent, on passe -n pour fermer stdin
à la source — indispensable sur macOS où Process.run peut
laisser le canal ssh ouvert.
Liste des arguments passés au binaire scp pour transférer
source vers destination. Exposée pour les tests.
Liste des arguments passés au binaire ssh pour exécuter
command. Exposée pour permettre l'inspection et les tests.
Transfère un fichier local vers la cible via scp.