====== SSH: Homelab Server ====== ===== Connection ===== ssh user@server ===== Non-interactive Commands (Scripting) ===== Use ''-T'' and ''-o BatchMode=yes'' to prevent hanging: ssh -T -o BatchMode=yes user@server "command" * ''-T'': disable pseudo-terminal (prevents interactive prompts from hanging) * ''-o BatchMode=yes'': fail immediately instead of prompting for passwords ===== File Transfer ===== # Upload single file scp localfile.txt user@server:~/cafe/ # Upload multiple config files scp cafe/docker-compose.yml cafe/caddy/Caddyfile user@server:~/cafe/ scp cafe/caddy/Caddyfile user@server:~/cafe/caddy/Caddyfile # Sync directory with rsync rsync -avz --exclude '.git' ./cafe/ user@server:~/cafe/ ===== Never Run Interactive Editors Over SSH ===== This will hang indefinitely: ssh user@server "nano /etc/file" # ❌ hangs Instead: edit locally, upload with scp. See [[guides:add_new_service|deployment workflow]]. ===== Common One-Liners ===== # Check running containers ssh user@server "docker ps" # Check what's on port 80 ssh user@server "ss -tlnp | grep :80" # Tail logs ssh user@server "docker logs cafe-caddy-1 --tail 20" # Reload Caddy ssh user@server "docker exec cafe-caddy-1 caddy reload --config /etc/caddy/Caddyfile" # System resources ssh user@server "free -h && df -h" ===== Security Reminders ===== * Never disable SSH (port 22) while connected * Never commit SSH keys or passwords to git * Keep local copies before server changes ===== See Also ===== * [[terminal:tools:start|Terminal Tools Index]] * [[folkzone:server_specs|Server Specifications]] * [[troubleshooting:coolify_root_ssh|Coolify Requires Root SSH Access]] * [[terminal:tools:rsync|rsync]] * [[terminal:start|Return to terminal]]