SSH简介
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
Linux生成密钥和公钥
- 在相应的用户根目录下生成密钥公钥,输入如下命令:
ssh-keygen -t rsa
或者添加邮箱
ssh-keygen -t rsa -C "你的邮箱"
- 直接三次回车:会生成两个文件:
~/.ssh/ id_rsa /
和~/.ssh/id_rsa.pub
,分别为密钥和公钥
-
打开公钥id_rsa.pub文件,复制里面的内容,并将复制的内容追加到你想要免密登录的服务器的/root/.ssh/authorized_keys里面(authorized_keys需要自己创建,将复制的内容追加到文件里面,一个公钥放一行,可以检查下公钥有没有跨行。创建文件的命令为:touch authorized_keys)
-
应该就可以登录了。如果没有权限,可以给文件添加权限:chmod 700 /root/.ssh/authorized_keys
-
接下来就是开始解决git pull/push 免密码
使用命令vim .git/config
:
红色框中是HTTPS传输的地址,你需要改成SSH的传输地址,修改完之后如下:
这样使用命令 git pull/push
就不用输入密码了,这是因为刚才在生成公钥时,没有输入密码,所以当你选择SSH地址传输时,就可免密码使用命令 git pull/push。