Must-Know SSH Commands for Efficient Remote Management
Secure Shell (SSH) is an essential tool for securely accessing and managing remote servers. Whether you're a system administrator, developer, or tech enthusiast, mastering SSH commands can significantly improve your workflow. This article covers the must-know SSH commands that every user should be familiar with.
What is SSH?
SSH, or Secure Shell, is a protocol that allows users to securely connect to a remote computer over an unsecured network. It provides encrypted communication and various authentication methods, making it a fundamental tool for remote management.
Essential SSH Commands
1. Connecting to a Remote Server
The basic syntax for connecting to a remote server is:
ssh username@hostname
Replace username
with your remote user account and hostname
with the server's address (IP or domain).
2. Specifying a Port
If your SSH server listens on a port other than the default 22, you can specify it using the -p
option:
ssh -p port_number username@hostname
3. Copying Files with SCP
Secure Copy Protocol (SCP) is used for transferring files between local and remote hosts securely. The basic syntax for copying a file from a local machine to a remote server is:
scp local_file username@hostname:/remote/directory/
To copy a file from a remote server to your local machine:
scp username@hostname:/remote/file local_directory/
4. Running Remote Commands
You can execute commands on a remote server without logging in interactively:
ssh username@hostname 'command'
For example, to check disk usage on a remote server:
ssh username@hostname 'df -h'
5. Using SSH Keys for Authentication
SSH keys provide a more secure way of logging into a remote server than using passwords. Generate a key pair with:
ssh-keygen
Then, copy your public key to the remote server:
ssh-copy-id username@hostname
6. Tunneling with SSH
SSH tunneling allows you to create a secure connection between your local machine and a remote server, which can be used to access services on the remote network. For example, to forward a local port to a remote port:
ssh -L local_port:remote_host:remote_port username@hostname
This command forwards local_port
on your machine to remote_port
on remote_host
through the SSH connection.
7. SSH Config File
The SSH config file allows you to save frequently used SSH connection options. It is typically located at ~/.ssh/config
. A sample config entry might look like:
Host alias
HostName hostname
User username
Port port_number
IdentityFile ~/.ssh/id_rsa
After configuring, you can connect using the alias:
ssh alias
8. Background SSH Sessions
You can run SSH sessions in the background using the -f
option, which is useful for running background processes:
ssh -f username@hostname 'command'
To execute a command in the background:
ssh -f username@hostname 'command &'
9. Checking SSH Version
To check the SSH version installed on your system:
ssh -V
10. Closing an SSH Session
To log out of an SSH session, simply type:
exit
Conclusion
Knowing these essential SSH commands can greatly enhance your ability to manage remote servers efficiently and securely. Whether you're transferring files, running commands, or setting up secure tunnels, SSH is a powerful tool that every tech professional should master.