Git SSH配置

在使用 GitHub、Coding 等 Git 服务的时候,经常需要配置 SSH key,以便于进行 Git 操作时候的身份认证,在这里记录和总结下配置的过程。


ssh.jpg

SSH

Secure Shell(缩写为 SSH)即“安全外壳协议”,是一项创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。

传统的网络服务程序,如 FTP、POP 和 Telnet 其本质都是不安全的,因为它们在网络上使用明文传送数据、用户账号和用户口令,很容易受到中间人攻击方式的攻击。而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。其优点如下:

  • 通过 SSH 可以对所有的传输的数据进行加密。
  • SSH 为其传输的数据可以是经过压缩的,可以加快传输的速度。

SSH 提供两种级别的安全验证:

  • 基于密码。通过账号和密码登陆远程主机后,所有的传输数据都会被加密。由于别的服务器可能在冒充真正的服务器,所以无法避免中间人攻击。
  • 基于密钥。需要创建一对密钥,把公共密钥放在需要访问的服务器上,客户端软件会向服务器发出请求用公共的密钥进行安全验证,服务器收到请求后先在该服务器的用户根目录下寻找用户的公有密钥,然后把它和用户发送的过来的公有密钥进行比较,如果两个密钥一致,服务器就用公有密钥加密“质询”(challenge)并把它发送给客户端软件。该方式可以避免中间人攻击。

Git SSH

通过上面的介绍,知道了首先要在本地和 GitHub 之间建立连接,这种连接可以通过 SSH 进行。

配置 Git 的用户名和邮箱

如果是首次使用 Git,需要先设置usernameemail

git config --global user.name "shudz"
git config --global user.email "[email protected]"

生成 SSH key

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

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

cd ~/.ssh
ls

在目录下寻找一对以id_rsa命名的文件,其中一个带有.pub扩展名。.pub文件是公钥,另一个则是密钥。如果找不到这样的文件(或者根本没有.ssh目录),可以通过运行ssh-keygen来创建它们。

ssh-keygen -t rsa -C "[email protected]"

首先ssh-keygen会确定密钥的存储位置(默认是.ssh/id_rsa),然后它会要求你输入两次密钥口令。如果不想在使用密钥时输入口令,将其留空直接回车即可。

rsa.png

此时,可以在用户目录找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是 SSH Key 的密钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

添加 SSH key 到 GitHub 账户

登陆 GitHub,打开 “Account Setting” ,在设置边栏选择 “SSH and GPG keys” 选项,点击 “New SSH key” 按钮,填写任意 Title,在 Key 文本框粘贴id_rsa.pub文件的内容:

点击 “Add Key” ,然后输入确认密码添加完成,就可以看到已经添加的 Key。


github.png

测试 SSH 连接

ssh -T [email protected]

看到提示是否连接的信息,键入yes回车,如果看到包含用户名的信息,就说明成功了。

到这里,SSH就配置完成了,赶快去github尝试提交代码吧~

你可能感兴趣的:(Git SSH配置)