赞
踩
使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码。如果使用SSH,就可以记住用户名,并创建属于自己的密码来保证安全操作,还有神奇的一招可以“不用输入密码”哦。下面将介绍如何创建SSH Keys并将公钥加到GitHub账户中,使用SSH Keys在本机和GitHub之间建立一个安全的连接。
首先,我们需要看看是否看看本机是否存在SSH keys,打开Git Bash,并运行:
1
|
$
cd
~
/
.
ssh
#
|
检查你本机用户home目录下是否存在.ssh目录
如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。
输入如下命令:
1
2
3
4
|
$
ssh
-
keygen
-
t
rsa
-
C
"your_email@example.com"
#这将按照你提供的邮箱地址,创建一对密钥
Generating
public
/
private
rsa
key
pair
.
Enter
file
in
which
to
save
the
key
(
/
c
/
Users
/
you
/
.
ssh
/
id_rsa
)
:
[
Press
enter
]
|
直接回车,则将密钥按默认文件进行存储。此时也可以输入特定的文件名,比如/c/Users/you/.ssh/github_rsa
接着,根据提示,你需要输入密码和确认密码(说到这里,如果你很放心,其实可以不用密码,就是到输密码的地方,都直接回车,所以每次push就只管回车就行了。所谓的最安全的密码,就是没有密码 – – 哈哈)。相关提示如下:
1
2
|
Enter
passphrase
(
empty
for
no
passphrase
)
:
[
Type
a
passphrase
]
Enter
same
passphrase
again
:
[
Type
passphrase
again
]
|
输入完成之后,屏幕会显示如下信息:
1
2
3
4
|
Your
identification
has
been
saved
in
/
c
/
Users
/
you
/
.
ssh
/
id_rsa
.
Your
public
key
has
been
saved
in
/
c
/
Users
/
you
/
.
ssh
/
id_rsa
.
pub
.
The
key
fingerprint
is
:
01
:
0f
:
f4
:
3b
:
ca
:
85
:
d6
:
17
:
a1
:
7d
:
f0
:
68
:
9d
:
f0
:
a2
:
db
your_email
@
example
.
com
|
运行如下命令,将公钥的内容复制到系统粘贴板(clipboard)中。
1
|
clip
<
~
/
.
ssh
/
id_rsa
.
pub
|
接着:
1. 登陆GitHub,进入你的Account Settings.
2. 在左边菜单,点击”SSH Keys”.
3. 点击”Add SSH key”按钮.
4. 粘贴你的密钥到key输入框中.
5. 点击”Add Key”按钮。
6. 再弹出窗口,输入你的GitHub密码,点击确认按钮。
7. 到此,大功告成了!
为了确认我们可以通过SSH连接GitHub,我们输入下面命令。输入后,会要求我们提供验证密码,输入之前创建的密码就ok了。
1
|
$
ssh
-
T
git
@
github
.
com
|
你可能会看到告警信息,如下:
1
2
3
|
The
authenticity
of
host
'github.com (207.97.227.239)'
can'
t
be
established
.
RSA
key
fingerprint
is
16
:
27
:
ac
:
a5
:
76
:
28
:
2d
:
36
:
63
:
1b
:
56
:
4d
:
eb
:
df
:
a6
:
48.
Are
you
sure
you
want
to
continue
connecting
(
yes
/
no
)
?
|
不用担心,直接输入yes。
如果看到下面信息,就说明一切完美!
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
首先,我们需要看看是否看看本机是否存在SSH keys,打开终端(Terminal),并运行:
$cd ~/.ssh
# 检查你本机用户home目录下是否存在.ssh目录
如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。
输入如下命令:
1
2
3
4
|
$
ssh
-
keygen
-
t
rsa
-
C
"your_email@example.com"
#这将按照你提供的邮箱地址,创建一对密钥
Generating
public
/
private
rsa
key
pair
.
Enter
file
in
which
to
save
the
key
(
/
Users
/
you
/
.
ssh
/
id_rsa
)
:
[
Press
enter
]
|
直接回车,则将密钥按默认文件进行存储。此时也可以输入特定的文件名,比如/Users/you/.ssh/github_rsa
接着,根据提示,你需要输入密码和确认密码。相关提示如下:
1
2
|
Enter
passphrase
(
empty
for
no
passphrase
)
:
[
Type
a
passphrase
]
Enter
same
passphrase
again
:
[
Type
passphrase
again
]
|
输入完成之后,屏幕会显示如下信息:
1
2
3
4
|
Your
identification
has
been
saved
in
/
Users
/
you
/
.
ssh
/
id_rsa
.
Your
public
key
has
been
saved
in
/
Users
/
you
/
.
ssh
/
id_rsa
.
pub
.
The
key
fingerprint
is
:
01
:
0f
:
f4
:
3b
:
ca
:
85
:
d6
:
17
:
a1
:
7d
:
f0
:
68
:
9d
:
f0
:
a2
:
db
your_email
@
example
.
com
|
运行如下命令,将公钥的内容复制到系统粘贴板(clipboard)中。
pbcopy < ~/.ssh/id_rsa.pub
接着:
1. 登陆GitHub,进入你的Account Settings.
2. 在左边菜单,点击”SSH Keys”.
3. 点击”Add SSH key”按钮.
4. 粘贴你的密钥到key输入框中.
5. 点击”Add Key”按钮。
6. 再弹出窗口,输入你的GitHub密码,点击确认按钮。
7. 到此,大功告成了!
为了确认我们可以通过SSH连接GitHub,我们输入下面命令。输入后,会要求我们提供验证密码,输入之前创建的密码就ok了。
$ ssh -T git@github.com
你可能会看到告警信息,如下:
1
2
3
|
The
authenticity
of
host
'github.com (207.97.227.239)'
can'
t
be
established
.
RSA
key
fingerprint
is
16
:
27
:
ac
:
a5
:
76
:
28
:
2d
:
36
:
63
:
1b
:
56
:
4d
:
eb
:
df
:
a6
:
48.
Are
you
sure
you
want
to
continue
connecting
(
yes
/
no
)
?
|
不用担心,直接输入yes。
如果看到下面信息,就说明一切完美!
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
【注意】
如果前面没有将生成的密钥存放在默认的文件id_rsa中(而是my_rsa中),那么ssh -T git@github.com命令就需要添加参数来执行。如下:
$ ssh -T -i my_rsa git@github.com
其实,一套SSH密钥是可以用在不同的SSH环境的.
但是如果由于某种要求,需要用不同的SSH密钥连接不同的Git环境。假设具体场景是,已经建了密钥github_rsa,还需要创建work_rsa连接工作环境git仓库,那么,可以按下面操作进行:
1. 创建另一对密钥work_rsa.
$ssh-keygen -t rsa -C “work@mail.com”
#保存密钥为work_rsa
2. 添加新身份信息
$ssh-add ~/.ssh/work_rsa
3. 配置.ssh/config
我们需要通过Host别名,将不同的账号区分开来。
1
2
3
4
5
6
7
8
9
|
Host
me
.
github
.
com
HostName
github
.
com
PreferredAuthentications
publickey
IdentityFile
~
/
.
ssh
/
github_rsa
Host
work
.
comp
.
com
HostName
comp
.
com
PreferredAuthentications
publickey
IdentityFile
~
/
.
ssh
/
work_rsa
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。