SSH Remote Connection
Universal skill for connecting to remote servers via SSH.
Usage
# Interactive shell
scripts/connect.sh
# Run command directly
scripts/connect.sh "docker compose logs backend --tail 50"
Setup
For Claude Code (local)
-
Copy config template:
cp config/.env.example config/.env -
Fill in
config/.envwith actual valuesKey-based authentication:
SSH_HOST=your-server.example.com SSH_USER=ubuntu SSH_AUTH_METHOD=key SSH_KEY_PATH=/absolute/path/to/private/key SSH_KEY_PASSWORD= SERVER_PROJECT_PATH=/path/to/projectPassword-based authentication:
SSH_HOST=your-server.example.com SSH_USER=ubuntu SSH_AUTH_METHOD=password SSH_PASSWORD='your account password' SERVER_PROJECT_PATH=/path/to/project -
Make script executable:
chmod +x scripts/connect.sh
For Cloud Runtime
Set environment variables in your cloud configuration:
SSH_HOST— server hostname or IPSSH_USER— SSH usernameSSH_PORT— SSH port (optional)SSH_AUTH_METHOD—auto,key, orpassword(optional, defaults toauto)SSH_KEY_PATH— path to private key for key authenticationSSH_KEY_PASSWORD— key passphrase (optional)SSH_PASSWORD— SSH account password for password authenticationSERVER_PROJECT_PATH— project directory on server
For password authentication, the local runtime must have either sshpass or expect.
If the host key is not trusted yet, connect once manually or add the host to known_hosts
before running non-interactive commands.
Important Notes
- Git operations: Do NOT run
git pullon the server. User will handle git sync manually. - Code location: Code is in a private repo, changes must be pushed first then pulled by user.
- Docker: Use
docker compose(notdocker-compose) on the server.
Example Commands
# View logs
scripts/connect.sh "docker compose logs backend --tail 100"
# Restart service
scripts/connect.sh "docker compose restart backend"
# Rebuild and restart
scripts/connect.sh "docker compose build backend && docker compose up -d backend"
# Check status
scripts/connect.sh "docker compose ps"