目录

概述

一、生成 SSH 公钥

1. Linux 系统

2. Windows 系统

二、发送公钥

三、 复制公钥

四、 验证 SSH

参考文章


概述

许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。

一、生成 SSH 公钥

首先,你需要确认自己是否已经拥有密钥。

1. Linux 系统

默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

2. Windows 系统

C:\Users\administrartor\.ssh

这个 administrartor 可能是你电脑的用户名。

我们需要寻找一对以 id_dsaid_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。 在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

如果有这两个文件,说明公钥已经创建好了,如果没有则需要创建:

ssh-keygen -t rsa -C "youremail@youremail.com"

或者

ssh-keygen -o

首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。 如果你不想在使用密钥时输入口令,将其留空即可。 然而,如果你使用了密码,那么请确保添加了 -o 选项,它会以比默认格式更能抗暴力破解的格式保存私钥。 你也可以用 ssh-agent 工具来避免每次都要输入密码。

ssh 公钥怎么拷贝出来 ssh公钥怎么生成_服务器

1. 执行这条命令会如上图提示文件保存路径,可以直接按Enter;

2. 然后提示输入 passphrase(密码),输入两次(可以不输直接两次Enter);

3. 然后会在 .ssh 目录生产两个文件:id_rsa和id_rsa.pub 

二、发送公钥

cat ~/.ssh/id_rsa.pub

 或者复制 id_rsa.pub 文件里面的内容,然后通过邮件或者其他方式发送给对应服务器。

公钥一般看起来是这样的:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU 
 
 GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 
 
 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA 
 
 t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En 
 
 mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx 
 
 NrRFi9wrf+M7Q== schacon@mylaptop.local

三、 复制公钥

复制公钥到 GitHub/Gitlab/Gitee上,一般这一步操作都是一样的,我们以 GitHub为例:

1. 点击 Settings

2. 点击 SSH and GPG keys

 在 SSH keys 这个地方,点击 New SSH key,粘贴刚才复制的公钥即可,title可填不填。

ssh 公钥怎么拷贝出来 ssh公钥怎么生成_服务器_02

四、 验证 SSH

打开你的 Git 客户端,输入:

ssh -T git@github.com

验证公钥配置是否成功。

ssh 公钥怎么拷贝出来 ssh公钥怎么生成_服务器_03

 后面的 but GitHub does not provide shell access. 不用管它。这种情况代表你 SSH 配置成功,可以通过 SSH 方式连接对应的GitHub上的项目了。