module

SSH

Wrapper Crystal isolé autour du binaire ssh système.

Ce shard est prévu pour les outils de provisioning et d'automatisation qui doivent ignorer complètement la configuration utilisateur (~/.ssh/config, ~/.ssh/known_hosts, ssh-agent). Chaque connexion utilise une clé explicitement résolue, avec BatchMode=yes (jamais de prompt) et StrictHostKeyChecking=no (hosts jetables de type rescue/bootstrap).

Usage typique :

require "ssh"

store = SSH::KeyStore.new
key = store.path_for!("philippe-aloli-fr")

conn = SSH::Connection.new(
  host: "ns3156789.ip-51-83-6.eu",
  user: "root",
  identity_file: key,
)
result = conn.exec("uname -a")
puts result.stdout

Voir SSH::Connection pour la liste des options ssh forcées (et pourquoi), et SSH::KeyStore pour la convention de découverte des clés dans ~/.ssh/*.key.

Constants

VERSION = {{ (((read_file("/tmp/tmp.HmCbMG/src/src/ssh/../../shard.yml")) .lines .find(&.starts_with?("version:")) || "version: 0.0.0") .gsub(/^version:\s*/, "")) .chomp }}

Lue au compile-time depuis shard.yml via le macro read_file. Cf. note mémoire feedback_shard_version_macro.md (mémoire ALOLI).

Nested types