From ead03437536360bf0265884913d9c472965abe44 Mon Sep 17 00:00:00 2001 From: medusa Date: Tue, 28 May 2024 06:07:46 +0000 Subject: [PATCH] Add tech_docs/ssh-agent.md --- tech_docs/ssh-agent.md | 91 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 tech_docs/ssh-agent.md diff --git a/tech_docs/ssh-agent.md b/tech_docs/ssh-agent.md new file mode 100644 index 0000000..a8b544e --- /dev/null +++ b/tech_docs/ssh-agent.md @@ -0,0 +1,91 @@ +Certainly! Here’s a detailed explanation of each step and how to use them: + +### `eval "$(ssh-agent -s)"` + +#### What it Does: +- This command starts the SSH agent in the background. The SSH agent is a program that keeps track of your SSH keys and passphrases, making it easier to use SSH keys without entering the passphrase every time you connect to a server. + +#### How to Use It: +- Open your Terminal. +- Run the command: + ```sh + eval "$(ssh-agent -s)" + ``` +- This will start the SSH agent and output a process ID indicating that the agent is running. + +### `ssh-add ~/.ssh/id_ed25519` + +#### What it Does: +- This command adds your SSH private key to the SSH agent. The SSH agent can then use this key for authentication without requiring you to enter the passphrase every time. + +#### How to Use It: +- After starting the SSH agent, run the following command: + ```sh + ssh-add ~/.ssh/id_ed25519 + ``` +- If you created your SSH key with a different name or location, adjust the path accordingly. +- You will be prompted to enter the passphrase for the key if you set one during the key generation. + +### `pbcopy < ~/.ssh/id_ed25519.pub` + +#### What it Does: +- This command copies the contents of your public key file to the clipboard. `pbcopy` is a macOS command that places the output of a command into the system clipboard. + +#### How to Use It: +- Run the command: + ```sh + pbcopy < ~/.ssh/id_ed25519.pub + ``` +- After running this command, the contents of your `id_ed25519.pub` file (your public key) will be in your clipboard, ready to be pasted. + +### Adding the Public Key to a Service + +#### Where and How to Use It: +- **GitHub**: + - Go to [GitHub SSH settings](https://github.com/settings/keys). + - Click "New SSH key". + - Give your key a title (e.g., "My MacBook Pro"). + - Paste the public key from your clipboard into the "Key" field. + - Click "Add SSH key". + +- **GitLab**: + - Go to [GitLab SSH settings](https://gitlab.com/-/profile/keys). + - Paste the public key from your clipboard into the "Key" field. + - Give your key a title. + - Click "Add key". + +- **Remote Servers**: + - SSH into your remote server. + - Open or create the `~/.ssh/authorized_keys` file: + ```sh + nano ~/.ssh/authorized_keys + ``` + - Paste the public key into this file. + - Save and close the file. + +By following these steps, you enable secure, password-less authentication to your remote services and servers using your SSH key. Here’s a summary of the complete process: + +1. **Generate SSH Key**: + ```sh + ssh-keygen -t ed25519 -C "your_email@example.com" + ``` + +2. **Start SSH Agent**: + ```sh + eval "$(ssh-agent -s)" + ``` + +3. **Add SSH Key to Agent**: + ```sh + ssh-add ~/.ssh/id_ed25519 + ``` + +4. **Copy Public Key to Clipboard**: + ```sh + pbcopy < ~/.ssh/id_ed25519.pub + ``` + +5. **Add Public Key to Service**: + - For GitHub, GitLab, or other services, follow the instructions specific to the platform to paste and save your public key. + +This setup ensures that you can connect to your services and servers securely without repeatedly entering your passphrase. \ No newline at end of file