您的位置:首页 > 运维架构 > Shell

wi7下面配置 git bash使用ssh公钥/私钥登陆centos

2014-07-07 20:20 513 查看
最近在win7下面研究ssh公钥/私钥登陆 centos,至于 ssh这货是什么东西 ,不懂的建议百度一下 。最好能理解ssh公钥私钥的登陆流程 。开始,在win7下面生成密钥 ,配置config ,上传到centos服务器 ,编辑 sshd配置文件 ,这些步骤都做了 ,但是一测试 ,还是连接失败 ,不是权限拒绝 ,就是还是要输入密码 。妈的,要输入密码,我还配个什么劲啊!最后终于搞定 ,是权限的问题 。以下是详细步骤 。

1 。首先用密码登陆centos ,编辑 etc/ssh/sshd_config

去掉以下几行的注释
RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

AuthorizedKeysCommand none

AuthorizedKeysCommandRunAs nobody
这个意思是开启公钥认证登陆 。
然后service sshd restart ,重启ssh 。

然后添加个用户git ,设置密码 ,我们用用户git测试共钥登陆 。不建议用root测试,以防万一 。

2.生成公钥和私钥
在git bash 里面运行以下命令

ssh-keygen -t rsa -f ~/.ssh/admin

win7会在C:\Users\Administrator\.ssh生成两个文件 admin.pub 和admin两个文件 。admin是私钥文件 ,admin.pub是公钥文件 。
然后建立一个config文件 ,指明登陆某台服务器用哪个私钥文件 。
比如我写入了以下内容:

host 192.168.1.101

user git

hostname 192.168.1.101

port 22

identityfile C:/Users/Administrator/.ssh/admin

指定连接192.168.1.101的服务器时使用admin私钥进行验证 。

3.上传公钥到服务器,我这里的的服务器是局域网内的192.168.1 .101 。
在git bash里面执行以下命令 :
scp ~/.ssh/admin.pub git@192.168.1.101 : ~/

4.将公钥写入服务器验证文件
以root登陆服务器 ,再切换到git用户 。
在git用户的家目录下面建立 .ssh/authorized_keys文件 。目录和文件都要新建 。

然后执行cat
admin.pub >> ~/.ssh/authorized_keys

写入公钥验证文件 。

这个文件就是服务器和客户端验证公钥是否相同的文件 。

5
。公钥和私钥文件权限设置 。这一步很重要 。否则会验证失败 。
SSH对公钥、私钥的权限和所有权的要求是非常严格的,总结如下:
1、下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700
\home\user
\home\user\.ssh
2、下面公钥文件的所有权必须是user,所属组也应该是user,权限必须为644
\home\user\.ssh\authorized_keys
3、下面私钥文件的所有权必须是user,所属组也应该是user,权限必须是600
\home\user\.ssh\id_rsa

在centos上面通过 chown命令更改文件所有权和所属用户组 ,通过chmod命令更改权限 。

但是第三步的私钥文件的权限在win7下面好像无法设置 。即使在git bash里面用了chmod 600 来改变私钥文件的权限还是没有用处,用 ls -l ~/..ssh来查看 ,还是其他用户用读的权限 。。。
我自己使用的是直接将C:\Users\Administrator\.ssh目录设为只用当前管理员才有权限 。其他的目录也变成了只用管理员才可读的文件 ,其他用户没有读取的权限 。这样也实现了 600 。

7 。ssh公钥验证登陆 。
输入ssh git@192.168.1.101,如果现实以下信息 ,表明密钥登陆成功 。

$ ssh git@192.168.1.101

Last login: Sun Jul 6 22:04:32 2014 from 192.168.1.100

[git@localhost ~]$

如果提示输入git用户的密码 ,就表明以上配置用错误 ,ssh密钥登陆失败 。请回去检查以上配置是否有错误 。并查找错误原因 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: