ssh-deploy-skill
Universal SSH remote deployment tool - multi-server management, batch deployment, installation script templates with domestic mirror optimization. Supports remote installation of Git, Docker, MySQL, PostgreSQL, Nginx, Node.js, Redis, Python and more.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/awamwang/ssh-deploy-skillSSH Deploy Skill
A universal SSH remote deployment tool for managing Linux servers with batch operations, file transfers, and templated software installations. Optimized for domestic network environments with built-in mirror configuration for Chinese mirrors (Aliyun, Tsinghua, etc.).
Quick Start
1. Initial Setup
cd /root/.openclaw/workspace/skills/ssh-deploy-skill
# Auto setup (checks dependencies, creates config)
bash scripts/setup.sh
# Manual dependency install if auto fails
pip3 install --user paramiko
2. Configure Servers (Two Methods)
Method A: Use inventory.json (Traditional)
Edit ~/.ssh-deploy/inventory.json or add servers via CLI:
python3 scripts/inventory.py add web-01 \
--host 192.168.1.101 \
--user root \
--ssh-key ~/.ssh/id_rsa \
--groups production,web \
--tags "aliyun"
Config location: All server configurations are saved in ~/.ssh-deploy/inventory.json.
Method B: Read Directly from ~/.ssh/config (New!)
If you already have Host entries in ~/.ssh/config, use them without any additional configuration:
# ~/.ssh/config example
Host dy-c1
HostName 101.126.92.30
User root
IdentityFile ~/.ssh/mypc_id_rsa
Port 22
# Execute directly using host name
python3 scripts/deploy.py exec dy-c1 "ls -la /opt"
The tool automatically parses Host, HostName, Port, User, IdentityFile fields from your SSH config.
Note: Servers loaded from SSH config are read-only and not saved to inventory. To add groups/tags, import them:
inventory.py add --from-ssh-config.
3. Execute Remote Commands
# Single server
python3 scripts/deploy.py exec web-01 "uptime && df -h"
# Batch by group
python3 scripts/deploy.py exec group:production "docker ps"
# Batch by tag
python3 scripts/deploy.py exec tag:aliyun "systemctl status nginx"
# Sequential execution (avoid high load)
python3 scripts/deploy.py exec group:large "apt update" --sequential
4. File Transfers
# Upload file
python3 scripts/deploy.py upload web-01 ./nginx.conf /etc/nginx/nginx.conf
# Batch upload to all group servers
python3 scripts/deploy.py upload group:web ./config.json /opt/app/config.json
# Download file
python3 scripts/deploy.py download web-01 /var/log/nginx/access.log ./logs/
5. Use Templates for Software Installation
All templates in templates/ come pre-configured with domestic mirrors.
# Install Docker (auto-configured with China mirrors)
cat templates/install_docker.sh | python3 scripts/deploy.py exec tag:docker "bash -s"
# Install MySQL (password via environment variable)
MYSQL_ROOT_PASSWORD=YourPass123 cat templates/install_mysql.sh | \
python3 scripts/deploy.py exec db-01 "bash -s"
# Base setup (system updates + mirrors)
cat templates/base_setup.sh | python3 scripts/deploy.py exec group:all "bash -s"
📦 Installation Script Templates
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-awamwang-ssh-deploy-skill": {
"enabled": true,
"auto_update": true
}
}
}