和GitHub建立ssh连接

创建SSH密钥和公钥

首先在本地创建ssh密钥和公钥。

打开终端,输入以下命令:

1
ssh-keygen -t ed25519 -C "your_email@example.com" -f /path/to/your/key

参数说明:

  • -t 表示用于指定生成密钥的类型(type)
    其中ed25519是密钥的类型,可以选其他类型,如rsa。但是建议使用ed25519,因为ed25519密钥生成的速度更快,并且生成的密钥更小。

  • -C 表示添加一个 注释(comment)
    your_email@example.com“是密钥的注释,可以填写自己的邮箱。
    这个注释会出现在公钥文件的末尾,最终生成:

    1
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGazvX... zhangsan@company.com
  • -f:指定文件路径(file)
    提供的路径将作为私钥文件的路径,公钥会自动在私钥名后加上 .pub 扩展名。

配置SSH客户端

修改 ~/.ssh/config 文件(如果文件不存在则创建):

1
2
3
4
5
6
7
8
9
10
11
12
Host github.com
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/github_key
IdentitiesOnly yes

Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/gitee_key
IdentitiesOnly yes

配置项说明:

  • Host:定义主机别名
  • HostName:实际连接的主机名
  • User:连接时使用的用户名
  • Port:连接端口(GitHub推荐使用443端口)
  • IdentityFile:指定用于身份验证的私钥文件路径
  • IdentitiesOnly:只使用指定的身份文件进行认证

测试连接

测试与GitHub的连接:

1
ssh -T git@github.com

如果连接成功,会显示:

1
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.