问题
问题描述:
- 以CentOS7为服务器,在windows上写了代码要git push上去时,需要输入用户的密码
- 在windows生成的ssh公钥交给服务器后仍需要密码
解决
- ssh生成并复制到服务器上(若已完成则看后面的坑是否踩了)
在客户端执行
ssh-keygen -t rsa -f '文件名' -C "your_email" #your_email:你的email地址
# 举例:
ssh-keygen -t rsa -f 'centos' -C "xxx@qq.com" #一直空格不要输入密码
# 生成centos.pub(公钥)和centos文件(私钥)
在服务器执行
# 创建authorized_keys文件以及修改权限
cd /home/git/
mkdir .ssh
chmod 700 .ssh #修改文件权限
touch .ssh/authorized_keys #新建文件
chmod 600 .ssh/authorized_keys
cd /home
chown -R git:git git
将客户端生成的centos.pub(公钥)用记事本打开,复制到服务器的authorized_keys文件中
vim /home/git/.ssh/authorized_keys
# :wq 保存退出
这一步的坑:
- 生成公钥时,在Enter passphrase (empty for no passphrase):时输入了密码(切记,直接回车)
- 文件权限问题
- 此时git push时可能仍需要密码
再修改下配置文件就ok了!
# 1.删除git用户的密码
passwd -d git
# 2.修改ssh配置文件
vim /etc/ssh/sshd_config
# 找到 #PermitEmptyPasswords no
# 将前面#去掉,并把默认值no改为yes
PermitEmptyPasswords yes
大功告成!!!