用于使用OpenSSH密钥生成工具 (ssh-keygen) 生成一个新的SSH密钥对

ssh-keygen -t rsa -b 2048 -C

添加注释说明:指定邮箱地址

ssh-keygen -t rsa -b 2048 -C "your_email@example.com"

指定生成后的文件名称

ssh-keygen -t rsa -b 2048 -C "your_email@example.com" -f ~/.ssh/filename
  1. -t rsa:指定要创建的密钥的类型。在这种情况下,它表示应生成RSA密钥对。RSA(Rivest–Shamir–Adleman)是一种广泛使用的公钥密码体制,可用于安全数据传输。
  2. -b 2048:指定密钥中的位数。在这种情况下,它将密钥长度设置为2048位。通常来说,较长的密钥长度通常提供更高的安全性,但可能需要更多的计算资源。
  3. -C 选项用于添加注释,而注释通常包含与密钥相关的标识信息
  4. -f 选项用于指定生成的密钥文件的名称和路径。

在电脑上配置多个SSH,你可以使用SSH配置文件(通常是~/.ssh/config)来管理多个SSH主机。

这个配置文件允许你定义不同主机的参数,以及为每个主机指定别名、身份验证密钥等信息。

~/.ssh/config模板

# 第一个SSH主机
Host test1
    HostName test1.github.com
    User user1
    IdentityFile ~/.ssh/test

# 第二个SSH主机
Host test2
    HostName test2.test.com
    Port 2000
    User test2@test.com
    IdentityFile ~/.ssh/test2

Host: 指定你为主机定义的别名。
HostName: 主机的实际地址或域名。
Port: 主机端口
User: 登录SSH的用户名。
IdentityFile: 指定身份验证密钥的路径,注意,不带后缀.pub

使用方式:

git clone git@test1.github.com:xx/xx.git

也可以如下使用:

git clone git@别名:用户名/xxx.git
# 例如
git clone git@test1:user1/xxx.git

最后,将各自的.pub文件内的公钥,配置到对应的仓库里的ssh key设置里。

如果配置后仍然提示:

Permission denied (publickey).
致命错误:无法读取远程仓库
就通过ssh-add -l 查看一下以上秘钥是否添加成功。

ssh-add -l

如下图显示,就是正常的
image.png

如果没有,则手动添加:

ssh-add ~/.ssh/test

这里的test就是刚才生成的test和test.pub的文件名


jsoncode
4k 声望786 粉丝

I'm jsoncode