ssh
Establish and manage SSH connections to remote machines, including key generation, configuration, and file transfers. Use when connecting to remote servers, executing remote commands, or transferring files via SCP.
By openhands · 1,097 installs
npx skills add openhands/extensions --skill ssh
Source repository · Upstream listing
SSH Skill
This skill provides capabilities for establishing and managing SSH connections to remote machines.
Windows PowerShell equivalents for SSH config creation, key paths, ssh agent, and permissions are in references/windows.md .
Capabilities
Establish SSH connections using password or key based authentication
Generate and manage SSH key pairs
Configure SSH for easier connections
Execute commands on remote machines
Transfer files between local and remote machines
Manage SSH configurations and known hosts
Authentication Methods
Password Authentication
When prompted, you should ask the user for their password or a private key.
Key Based Authentication
Generate a new SSH key pair:
Copy the public key to the remote server:
Connect using the private key:
SSH Configuration
Create or edit the SSH config file for easier connections:
Then connect using the alias:
Common SSH Options
p PORT : Connect to a specific port
X : Enable X11 forwarding
L local port:remote host:remote port : Set up local port forwarding
R remote port:local host:local port : Set up remote port forwarding
N : Do not execute a remote command (useful for port forwarding)
f : Run in background
v : Verbose mode (add more v's for increased verbosity)
File Transfer with SCP
Copy a file to the remote server:
Copy a file from the remote server:
Copy a directory recursively:
SSH Agent
Start the SSH agent:
Add a key to the agent:
Troubleshooting
Check SSH service status on remote: systemctl status sshd
Verify SSH port is open: nc zv hostname 22
Debug connection issues: ssh vvv username@hostname
Check permissions: SSH private keys should have 600 permissions ( chmod 600 ~/.ssh/key name )
Verify known hosts: If host key changed, remove the old entry with ssh keygen R hostname
Secure SSH Key Management
Local Storage with Proper Permissions
The most basic approach is to ensure proper file permissions: