SSH is an integral part of cloud, network, and system administration as it provides secure encrypted communications between two hosts over an insecure network. Notably, it enables the transfer of files and management of remote servers.
This article will guide you through three essential Bash commands for handling SSH tasks: Generating a new SSH key, uploading the SSH key to a server, and creating an SSH config for the server for automated login.
1. Generate a new SSH key
You can generate a new RSA SSH key pair (public and private) using the following command:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
"[email protected]" with your choosen "id". The system will prompt you for the key pair's filename (default being
id_rsa), and an optional passphrase for private key security.
2. Upload the SSH key to a server
The next step involves copying your public key (
id_rsa.pub) to the remote server's
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
user with your username and
server with the server's hostname or IP address. This lets the server authenticate your future connections using your private key.
3. Create an SSH config for automated login
Finally, set up automated login with the
cat <<EOF >> ~/.ssh/config Host server HostName server User user IdentityFile ~/.ssh/id_rsa EOF
user with your actual values. The configuration file for SSH, the
~/.ssh/config file, directs your system to use your chosen identity file (
id_rsa) for server authentication.
.ssh directory and the
id_rsa.pub files is crucial. Use the following commands to restrict permissions:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub
In this way, your Bash commands can assist you with SSH tasks, including generating a new SSH key, uploading it to a server, and setting up automated logins. Secure communication between hosts has never been simpler with these steps in place.