标题: 从github免密码密钥认证开始

时间: 2014-01-18 16:35:33

正文:

git 本身不带用户认证相关功能,当然这并不意味着 git 没有用户的概念, 不带用户密码认证可以说是一种开放的精神体现。 当然某些场景下我们肯定是需要有一定的限制,一般来说 git 使用 ssh 认证的方式。

就 github 方式来说,至少用 TortoiseGit 的情况下,用 https 方式 clone 是不支持密钥免密码的。需要类似 git@github.com:hick/XXX.git 的方式。具体操作:

1.windows下建议用 puttygen.exe 生成,默认情况的设置就可以了: ssh2(rsa) , 按照提示生成公钥和私钥后分别保存(实际一般都是拷贝 puttygen 界面上那个公钥, 直接打开公钥文件的内容拷贝貌似有时候不行, 虽然看上去只多了注释等)。

2.github 上在 https://github.com/settings/ssh 添加 ssh key , 名字自己定义,ssh key 需要使用 puttygen 生成的以类似 ssh-rsa 为第一行,日期为最后一行的字符串。

3.这点我还真不止一次犯浑:用 https 方式的,在本地设置了私钥也没用: clone 的时候面板上有选择 ssh key 的地方;如果是之前 clone 的非 https 方式的,在 settings->remote 面板能找到设置私钥的地方;如果之前使用的 https 方式想变更,可以直接修改 .git 目录下的 config 。

        转载请注明出处 http://blog.hickwu.com/posts/318 by Hick

linux 下:

client: ssh-keygen -b 1024 -t rsa 几个回车后,得到:

The key fingerprint is:
a6:f6:c8:f1:cd:2b:72:d9:5b:79:5b:4f:b1:e1:35:1f root@ubuntu

生成的公钥文件 ~/.ssh/id_rsa.pub 拷贝到 server :

scp -p ~/.ssh/id_rsa.pub root@172.246.16.42:/root/.ssh/authorized_keys

特别注意, 对 windows 下 puttygen GUI 生成的来说, 直接拷贝 key , 也就是以 ssh-rsa 开头, 类似 rsa-key-20140101 结算的那段即可.

有一个感想: 做传统 gui 的确实都容易思想僵化,缺乏跳出惯性思维,为用户着想的设计:

  1. TortoiseGit 很多操作习惯都沿袭自 TortoiseSVN , 个人使用起来大多数情况还是不错的。但是如果想 push , 会发现很麻烦,连续按好几个确认才行。即使是不推荐经常 push , 也可以在第一个窗口里做更多选择,以及默认设置,真没法理解连续弹出三四个窗口才能完成一次 push 操作。

  2. 以前 https 方式 clone 的库想删除以后重新换方式 clone , 结果 windows 7 同志提示我该文件夹中有文件被打开了,不能删除。我就把可能打开了相关文件的程序都关了,还是一样。进到该文件夹,竟然发现能成功删除里头所有文件,包括隐藏的 .git 文件夹。 回到外层还是删不了! 微软啊微软,这个问题我绝对不止遇到一回,估计大部分人都有遇到过。不需要你强制断开文件句柄,您老人家能告诉我到底我错在哪里了,到底现在哪个程序打开了哪个该死的文件么? 哎... windows 的不争气在于瞎改整体风格,细节却一直上不去。

查看更多文章
分享到:


分享到: