Learning SSH
What is SSH?
SSH is a network protocol used for securely connecting one computer to another over the internet or any unsecured network. Without encryption, data sent over such networks could be intercepted, potentially exposing sensitive information like usernames and passwords. However, SSH encrypts this data through a secure tunnel, allowing you to securely log into remote machines, transfer files, and execute commands safely.
How SSH is implemented?
SSH operates using a client-server model, where one computer acts as the client initiating the connection, and another as the server hosting the services. Setting up SSH involves using a pair of keys: a public key stored on the server and a private key stored locally on the client.
The client presents its key pair to the server for authentication. The server sends an encrypted challenge to the client, which is decrypted using the client’s private key and returned to the server, thus verifying the client’s identity and establishing a secure connection.
How does GitKraken play a role with SSH?
Instead of using local machine directly as the SSH client, one can use an SSH agent to handle negotiations with the SSH server, providing extra security and convenience.
GitKraken, while not a traditional SSH agent usable by other applications, can negotiate with SSH servers on one’s behalf.
To set this up, go to Preferences.
And click on Authentication to access your SSH settings.
If you already have SSH keys, you can specify their paths. Alternatively, you can have GitKraken generate a new pair of keys.
For integrations with services like GitHub, Bitbucket, or GitLab, you can either provide the path to your existing SSH key pair or let GitKraken generate new keys. GitKraken will then use these SSH keys to securely communicate with the SSH servers, ensuring that all actions between your local repositories and remote servers are safely encrypted.