本页描述了如何创建和配置SSH密钥。
SSH密钥可用于建立与Git代码服务器的安全连接:
- 当你在本地机器上进行Git操作时
- 当其他系统或进程需要访问Git代码服务器中的仓库时(例如你构建的服务器)
SSH密钥需要被添加到Git代码服务器中。在你使用SSH密钥访问Git仓库前,Git仓库管理员必须启用SSH访问。
以Bitbucket的Git服务器为例,支持DSA、RSA2和Ed25519密钥类型。不支持RSA1。如果你愿意,你可以使用本地已有的SSH密钥,也可以不创建,然后在Bitbucket服务器上配置这个密钥即可。
一般我们要先创建SSH密钥,然后在Git服务器提供的接口上配置SSH密钥。创建SSH密钥分为两种,一种是Windows,一种是Linux&macOS。
在Windows上创建一个SSH密钥
1. 检查现有的SSH密钥
你应该检查你的本地计算机上现有的SSH密钥。
打开一个命令提示符,并运行:
cd %userprofile%/.ssh
-如果你看到 "No such file or directory",那么就没有任何现有的钥匙:转到第3步。
-检查你是否已经有了一个密钥。
dir id_*
如果已经有密钥,可以选择复用。
2. 备份旧的SSH密钥
如果你有现成的SSH密钥,但你不想在连接Bitbucket服务器时使用它们,你应该备份它们。
在你本地电脑的命令提示符中,运行:
mkdir key_backup
cp id_* key_backup
3. 生成一个新的SSH密钥
如果你没有想要复用的SSH密钥,请按以下方法生成一个:
a. 以管理员身份登录到你的本地计算机。
b. 在一个命令提示符下,运行:
ssh-keygen -t ed25519 -C "your_email@example.com"
或者
ssh-keygen -t rsa -C "your_email@example.com"
将密钥与你的电子邮件地址联系起来,有助于你以后识别密钥。
注意,ssh-keygen命令只有在你已经安装了Git(可以使用Git Bash)的情况下才能使用。
你会看到类似这样的回复:
C:\Users\ASUS>ssh-keygen -t ed25519 -C "your_email@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/ASUS/.ssh/id_ed25519):
c. 只要按<Enter>就可以接受默认的位置和文件名。如果.ssh目录不存在,系统将为你创建一个。
d. 在提示时输入口令。整个交互过程如下:
C:\Users\ASUS>ssh-keygen -t ed25519 -C "your_email@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/ASUS/.ssh/id_ed25519):
Created directory '/c/Users/ASUS/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in c/Users/ASUS/.ssh/id_ed25519.
Your public key has been saved in c/Users/ASUS/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:wvaHYeLtY6+DlvV5sFZgDi3RTAe8R2KY23N78qrGqJE your_email@example.com
e. SSH密钥生成成功。
在Linux和macOS上创建一个SSH密钥
1. 检查现有的SSH密钥
你应该检查你本地电脑上现有的SSH密钥。
打开一个终端,运行以下程序。
cd ~/.ssh
如果你看到 "No such file or directory, then there aren't any existing keys“,转到第3步。
检查一下你是否已经有了一个密钥。
ls id_*
如果已经有密钥,可以选择复用。
2. 备份旧的SSH密钥
如果你有现成的SSH密钥,但你不想在连接Bitbucket服务器时使用它们,你应该备份它们。
在你本地电脑的终端中,通过运行以下命令来完成:
mkdir key_backup
cp id_* key_backup
3. 生成一个新的密钥
如果你没有想要复用的SSH密钥,请按以下方法生成一个:
a. 在你的本地计算机上打开一个终端,输入以下内容:
ssh-keygen -t ed25519 -C "your_email@example.com"
或者
ssh-keygen -t rsa -C "your_email@example.com"
将密钥与你的电子邮件地址联系起来有助于你以后识别密钥。
你会看到一个类似于这样的响应:
chaiss@C02FP1JWMD6V ~ % ssh-keygen -t ed25519 -C chaiss@email.com
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/chaiss/.ssh/id_ed25519):
b. 只要按<Enter>就可以接受默认的位置和文件名。如果.ssh目录不存在,系统将为你创建一个。
c. 在提示时输入口令。整个交互过程如下:
chaiss@C02FP1JWMD6V ~ % ssh-keygen -t ed25519 -C chaiss@email.com
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/chaiss/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/chaiss/.ssh/id_ed25519.
Your public key has been saved in /Users/chaiss/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:gTVWKbn41z6JgBNu3wYjLC4H6oW5bmhaXyaVABwmEtE chaiss@email.com
The key's randomart image is:
+--[ED25519 256]--+
|==+. +o.. |
|.oE. +o.. |
| . ...o |
| .o... |
| oo+S . |
| + ..B = . . |
|.+.+.oo+ * o . |
|o++.o+ . + + |
|B+ o. . . |
+----[SHA256]-----+
chaiss@C02FP1JWMD6V ~ %
d. SSH密钥生成成功。
------------------------------------------------
为个人账户配置SSH密钥,将SSH密钥添加到Bitbucket服务器账户中
1. 在Windows上,打开命令提示符,运行以下命令。进入到.ssh目录,复制公钥文件到剪切板。
WINDOWS
cd %userprofile%/.ssh
clip < id_rsa.pub
在macOS或Linux上,只需在终端运行以下命令:
MAC OS X
pbcopy < ~/.ssh/id_rsa.pub
注意,在Linux上,你可能需要下载并安装xclip,然后使用它,如下所示:
LINUX
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
2. 在Bitbucket服务器访问页面上,打开账户页:
3. 点击SSH密钥,然后点击添加密钥。
4. 将密钥粘贴到文本框中。
5. 点击Add key,添加密钥完成。
然后,就可以使用Git来访问远程仓库了。
参考: