如何在同一台电脑上配置多个SSH Key?

在使用 ssh-keygen 生成多个密钥对并配置到不同服务或服务器时,需通过以下步骤实现安全隔离和灵活管理:

1. 生成多个密钥对

为不同服务(如 GitHub、服务器、云平台等)生成独立的密钥对,‌避免重复使用同一密钥‌。
示例‌:生成两个密钥对(RSA 和 ED25519 类型):

# 生成 GitHub 专用密钥(ED25519 类型,推荐)
ssh-keygen -t ed25519 -m pem -C "github@example.com" -f ~/.ssh/github_ed25519

# 生成服务器专用密钥(RSA 4096 位)
ssh-keygen -t rsa -m pem -b 4096 -C "server@example.com" -f ~/.ssh/server_rsa

关键参数‌:

  • -t:指定密钥类型(ed25519 更安全高效,rsa 兼容性更好)。
  • -f:自定义密钥文件名(避免覆盖默认的 id_rsa)。
  • -C:注释(用于标识用途,如邮箱或服务名称)。

2. 配置多密钥自动识别

通过 SSH 配置文件 ~/.ssh/config 指定不同服务使用对应的私钥。

示例配置‌:

# GitHub 使用 ed25519 密钥
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_ed25519
  IdentitiesOnly yes  # 强制仅使用指定密钥

# 公司服务器使用 RSA 密钥
Host company-server
  HostName 192.168.1.100
  User admin
  IdentityFile ~/.ssh/server_rsa
  Port 2222  # 自定义端口

生效配置‌:

chmod 600 ~/.ssh/config  # 必须设置权限

3. 部署公钥到目标服务

将公钥(.pub 文件)分发到不同服务或服务器:

(1) 服务器场景
  • 自动部署‌:使用 ssh-copy-id 命令(需指定对应公钥):

    ssh-copy-id -i ~/.ssh/server_rsa.pub admin@192.168.1.100 -p 2222
    

    手动部署‌:将公钥内容追加到目标服务器的 ~/.ssh/authorized_keys

    cat ~/.ssh/server_rsa.pub | ssh -p 2222 admin@192.168.1.100 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
    
    (2) Git 平台(GitHub/GitLab)

    将公钥内容(如 github_ed25519.pub)复制到平台的 SSH Keys 配置页面。


    4. 验证密钥连接

    测试不同服务的连通性:

    # 测试 GitHub 连接
    ssh -T git@github.com
    
    # 测试服务器连接
    ssh admin@company-server
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值