本文记录关于Git的免密使用,连接Github免密和 云服务器或私有服务器免密。
一 Github
的Git免密使用
1 客户端生成密钥
ssh-keygen -t rsa -C "这里换上你的邮箱"
然后会出现询问,大概意思如下:
1. 确认秘钥的保存路径(如果不需要改路径则直接回车);
2. 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
3. 创建密码(如果不需要密码则直接回车);
4. 确认密码;
要免密登录请输密码的时候回车即可。根据提示找到密钥所在文件:
id_rsa #私钥
id_rsa.pub #公钥
2 Github
配置SSH公钥
登录git账户,Setting
,SSH and GPG keys
, New ssh key
把id_rsa.pub
的内容粘贴到key的文本域,点击Add SSH key
完成。
后续的客户端git操作就不要密码了。
二 Git
服务器配置SSH免密
注意:这里的Git服务器可以是云服务器或者自己的私服务器。本次操作环境是Centos 7
。
1 客户端生成密钥
注意:同上,如果已经配置过Github
的ssh免密上面已经有了可以不用重复生成,可以直接跳到第二步。
ssh-keygen -t rsa -C "这里换上你的邮箱"
然后会出现询问,大概意思如下:
1. 确认秘钥的保存路径(如果不需要改路径则直接回车);
2. 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
3. 创建密码(如果不需要密码则直接回车);
4. 确认密码;
要免密登录请输密码的时候回车即可。根据提示找到密钥所在文件:
id_rsa #私钥
id_rsa.pub #公钥
2 服务端导入客户端公钥
在/home/git下已经创建.ssh目录,然后创建authorized_keys文件,并将客户端生成的公钥导入进去。
cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
将 id_rsa.pub
文件的内容写入authorized_keys
3 服务端SSH
开启RSA
认证
如果没有安装SSH服务,请先安装SSH服务。
vim /etc/ssh/sshd_config
其中三个地方的设置要确认如下:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
git用户不允许登录shell
vim /etc/passwd
将
git:x:502:502::/home/git:/bin/bash
改为
git:x:502:502::/home/git:/usr/local/git/bin/git-shell