xsshend est un outil CLI Rust moderne pour gérer vos serveurs SSH à grande échelle. Téléversez des fichiers et exécutez des commandes sur plusieurs serveurs simultanément.
- 📤 Upload - Transfert parallèle de fichiers vers plusieurs serveurs
- ⚡ Command - Exécution de commandes SSH (séquentiel/parallèle)
- 🔐 Authentification SSH sécurisée (Ed25519, ECDSA, RSA)
- 📊 Barres de progression et format JSON pour CI/CD
- 🔍 Filtrage par environnement, région, type de serveur
- 🎨 Mode interactif pour configuration assistée
russh avec rsa 0.9.8, affecté par RUSTSEC-2023-0071.
Recommandations :
- ✅ Utilisez des clés Ed25519 (non affectées)
- ✅ Utilisez sur réseaux de confiance (VPN, internes)
⚠️ Évitez les réseaux publics non sécurisés
📄 Voir SECURITY.md pour plus de détails.
cargo install xsshend# 1. Initialiser la configuration
xsshend init
# 2. Éditer ~/.ssh/hosts.json avec vos serveurs
# 3. Lister les serveurs
xsshend list
# 4. Téléverser un fichier
xsshend upload app.tar.gz --env Production
# 5. Exécuter une commande
xsshend command --inline "systemctl restart nginx" --env Production# Upload simple
xsshend upload myfile.txt --env Production
# Upload avec filtrage
xsshend upload config.json --env Staging --region EU-West --type Web
# Upload avec destination personnalisée
xsshend upload app.tar.gz --env Production --dest /opt/app/
# Mode simulation
xsshend upload deploy.sh --env Production --dry-run# Commande simple
xsshend command --inline "uptime" --env Production
# Script bash
xsshend command --script deploy.sh --env Staging
# Mode parallèle
xsshend command --inline "systemctl restart nginx" --env Production --parallel
# Format JSON pour CI/CD
xsshend command --inline "hostname" --env Production --output-format json
# Avec timeout personnalisé
xsshend command --inline "apt update" --env Production --timeout 120Fichier ~/.ssh/hosts.json :
{
"Production": {
"EU-West": {
"Web": {
"prod-web-01": {
"alias": "[email protected]",
"env": "Production"
}
}
}
},
"Staging": {
"EU-West": {
"Web": {
"stage-web-01": {
"alias": "[email protected]",
"env": "Staging"
}
}
}
}
}- 📖 Documentation principale
- 📘 Guide d'utilisation
- ⚙️ Configuration
- 🔐 Gestion des clés SSH
- 🔧 Installation
- 🔒 Sécurité
- 🤖 CI/CD
- 📝 Changelog
# Cloner le projet
git clone https://github.com/WillIsback/xsshend.git
cd xsshend
# Compiler
cargo build --release
# Tests (118 tests)
cargo test
# Qualité
cargo clippy
cargo fmtLes contributions sont bienvenues ! Avant de soumettre une PR :
- ✅ Formatage :
cargo fmt - ✅ Linting :
cargo clippy - ✅ Tests :
cargo test - ✅ Documentation à jour
MIT License - voir LICENSE
- 📦 Crate
- 📚 Documentation
- 🌐 Site Web
- 🐙 GitHub
William Derue - @WillIsback
⭐ Si ce projet vous est utile, n'hésitez pas à lui donner une étoile !
Made with ❤️ and 🦀 Rust