105 lines
3.3 KiB
Markdown
105 lines
3.3 KiB
Markdown
```sh
|
||
ssh-keygen -t ed25519 -C "newton214@gmail.com"
|
||
```
|
||
# Press Enter to accept the default file location
|
||
# Enter and confirm a passphrase (recommended)
|
||
|
||
eval "$(ssh-agent -s)"
|
||
ssh-add ~/.ssh/id_ed25519
|
||
pbcopy < ~/.ssh/id_ed25519.pub
|
||
# Now paste the copied public key into the relevant service
|
||
|
||
|
||
---
|
||
|
||
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. |