添加ssh密钥(当前机生成和远程机承认)
以下是从头开始生成自定义名称的SSH密钥的完整步骤(以GitHub为例,适用于任何SSH服务):
1. 生成自定义名称的SSH密钥对
            
            
              bash
              
              
            
          
          # 生成密钥对(-t 指定算法,-f 指定路径和名称,-C 添加注释)
ssh-keygen -t ed25519 -f ~/.ssh/github_mykey -C "my@email.com"
        - 
参数说明:
-t ed25519:推荐使用更安全的Ed25519算法(若系统不支持,可用-t rsa -b 4096)。-f ~/.ssh/github_mykey:自定义密钥路径和名称(此处生成github_mykey(私钥)和github_mykey.pub(公钥))。-C "注释":可选,用于标识密钥用途(如邮箱)。
 - 
交互提示:
- 直接狂按回车跳过密码(或设置一个密钥密码增强安全性)。
 
 

生成密钥对

上传远程主机
2. 将公钥上传到目标服务
2.1 GitHub/GitLab等平台:
- 复制公钥内容:
 
            
            
              bash
              
              
            
          
             cat ~/.ssh/github_mykey.pub
        - 登录GitHub → Settings → SSH and GPG keys → New SSH key,粘贴公钥。
 
2.2 修改服务器配置
适用于连接远程服务器的情况
# 确保远程主机已开启 SSH 服务
sudo apt update 
sudo apt install openssh-server  # Ubuntu
sudo systemctl enable --now sshd   # 启动并设置开机自启
# 检查 SSH 服务状态
sudo systemctl status sshd
        
# 修改SSH的配置
nano /etc/ssh/sshd_config
# 在服务器上检查以下关键配置
PasswordAuthentication yes      # 是否允许密码登录
PubkeyAuthentication yes       # 是否允许密钥登录
PermitRootLogin no             # 是否禁止root登录(建议禁用)
sudo systemctl restart sshd
        2.2.2 自有服务器:
将公钥追加到服务器的 ~/.ssh/authorized_keys:
            
            
              bash
              
              
            
          
          ssh-copy-id -i ~/.ssh/github_mykey.pub user@server_ip
        (若命令不可用,手动复制公钥内容到服务器的 ~/.ssh/authorized_keys 文件中)
3. 配置SSH客户端(在本机处理)
编辑或创建 ~/.ssh/config 文件,指定自定义密钥:
            
            
              bash
              
              
            
          
          nano ~/.ssh/config
        添加以下内容(以GitHub为例):
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_mykey
  IdentitiesOnly yes
        - 关键参数:
IdentityFile:指向你的自定义私钥路径。IdentitiesOnly yes:避免SSH尝试默认密钥。
 
4. 测试连接
            
            
              bash
              
              
            
          
          ssh -T git@github.com
        - 成功时会显示:
Hi {username}! You've successfully authenticated... 
总结
- 用 
ssh-keygen -f生成自定义密钥。 - 上传 
.pub公钥到目标服务。 - 通过 
~/.ssh/config指定私钥路径。 - 测试并修复权限问题。