github需要ssh密钥来建立push时的安全连接,虽然以前在用gitorious时也接触过,但已经不记得了,还是找了几篇教程来边看边做,笔记如下:
生成密钥对
sudo pacman -S openssh # ssh-keygen在openssh包里 ssh-keygen -t rsa
一路默认回车即可。你也可以在出现如下提示时为你的私钥添加密码短句进行加密
Enter passphrase (empty for no passphrase): Enter same passphrase again:
配置github
默认会在~/.ssh目录下生成私钥id_rsa和公钥id_rsa.pub,将公钥文件内容添加到github.com:账户设置-SSH Keys
根据github官方文档,一些教程里提到的GitHub token不再会有支持。你可以测试一下
ssh -T git@github.com
如果出现You’ve successfully authenticated字样,说明一切正常
安全但麻烦的passphrase(密码短句)
如果你在生成密钥对时设置了密码短句,则每次提交连接github都会询问你密码短句来解密私钥,我虽然平时除了github,很少用到ssh,但也颇感麻烦,一个简单解决办法是使用ssh-agent
sudo pacman -S kde-agent # ssh-agent随kde启动 ssh-add ~/.ssh/id_rsa # 会询问你密码短句
每次启动kde会话后,都要手动添加私钥到ssh-agent,你只需在此输入一次密码短句,此后只要ssh-agent进程不重启,你都不再需要输入密码短句。
参考资源
通用线程: OpenSSH 密钥管理: IBM网站上2001年的一篇教程,是由gentoo创始人写的,共有两部分,这是第一部分介绍基础知识,第二部分介绍ssh-agent和keychain
Gentoo Linux Keychain指南: Gentoo的一篇教程
SSH Keys: Archlinux的wiki文档