给Git配置SSH后,妈妈再也不担心我忘记输密码了

2,695 阅读2分钟

1. 前言

Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是httpsssh,平常我们用 https 比较多,这种方式 pullpush 代码都要输入账户密码,非常不方便。那么有没有更加方便而且安全的方式呢?当然有!ssh 方式可以做到这一点。

2. Git 中的 ssh

公有 Git 服务诸如 GitHubGiteeCodingGitlab 等都提供了 ssh 功能。通过 GitlabGogsGitea 搭建的私有 Git 服务也都有 ssh 功能。一般我们都可以在对应的设置 中找到。以 Gitee 为例:

那么如何生成 ssh 公钥呢?

3. ssh 公钥的生成

ssh 生成公钥的算法有很多种,我们通常使用 RSA 算法来生成密钥对。确保你在不同操作系统的用户目录 ~/.ssh 下没有 id_rsaid_rsa.pub ,如果有就说明你已经生成了无需再生成。针对 Linux\MacWindows 和我们来走一下流程。

3.1 Linux\Mac 为例

命令行执行:

ssh-keygen -t rsa -b 4096 -C "替换为常用email地址"

后面让你输入密码你可以输入一个,或者一路 enter 按到底直接生成。生成完毕后执行以下命令查看公钥:

 cat ~/.ssh/id_rsa.pub

切记一定要带 .pub 后缀,否则则为私钥。然后出现以 ssh-rsa 开头的字符串就是公钥:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDBYgnpCY9j/xhhZO4ryy7YrJRRUXydbVUyi8dSfyn5obFD0iJhqPCF1jk5LZuryhsmy
…………………(此处省略)
mH1eqd4SMXO8fJoaM7JOWYSs/xgRK9bw== dax@felord.cn

3.2 Windows 下生成 ssh

如果你本地安装有 Git Bash 方法可以按照上面去模仿即可。 Bash 可以去你 Git 安装目录找,它也是一种 Shell 操作界面。然后可以按照 3.1 的方法生成。Window10 某个更新以后开始内置了 ssh 服务。以管理员身份打开命令行输入 ssh 如果出现了提示命令说明你已经开启了 ssh 服务。如果没有则需要你手动开启。在 应用和功能 选项中搜索 openssh 选择客户端或者服务器都可以:

安装后需要重启,重启后打开命令行,输入 ssh 进行检查即可。然后就可以按照 3.1 的方式生成公钥了。

Win 下开启/关闭 ssh 命令:

net start sshd
net stop sshd

4. 配置

我们生成了密钥对之后将 id_rsa.pub所有内容复制并填写到 公钥 一栏中配置好我们生成的公钥,Git 服务端就认可我们当前的主机了。我们就能以 git@ hostname:user/project.git 的形式进行无密码访问远程 Git 仓库了。