# 生成 ssh 秘钥

# 创建 key

ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
  • rsa 非对称加密算法
  • -C 描述
  • -f 生成文件名称 默认为 id_rsa

# 远程仓库配置公钥

公钥就是 github_rsa.pub 或者 id_rsa.pub,用文本打开后,复制到远程仓库即可

一般 remote 的连接是这样的 git@gitee.com:xxx/xxxx.git

# 配置多个 ssh

linux 下 config 配置:

# gitee server one
Host gitee.com
    HostName gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
# gitee server two
Host gitee_two.com
    HostName gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_two

windows 下 config 配置:

#gitee server one
Host gitee.com
    Hostname gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa
#gitee server two
Host gitee_two.com
    Hostname gitee.com
    User git
    PreferredAuthentications publickey
    IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_two
  • Host : 相当于一个别名,远程仓库地址的域名别名它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。这里可以使用任意字段或通配符。访问 ssh 的时候如果服务器地址能匹配上这里 Host 指定的值,则 Host 下面指定的 HostName 将被作为最终的服务器地址使用,并且将使用该 Host 字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config 配置信息。
  • HostName :真正连接的服务器地址
  • User:自定义的用户名
  • PreferredAuthentications 指定优先使用哪种方式验证,支持密码和秘钥验证方式
  • IdentityFile:指定本次连接使用的密钥文件

# 测试

ssh -T git@github.com
ssh -T git@gitee.com
// Hi xxx! You've successfully authenticated, but GITEE.COM does not provide shell access.