• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

使用ssh密钥实现Github免密提交

软件和平台 wqsj 3年前 (2021-09-23) 1128次浏览 0个评论

早期github支持用密码提交版本变更,这种方式的好处是,你可以在不同的电脑上开发程序。最新的github政策已经放弃了对提交时使用密码的支持,也就是您不得不在ssh key和token两者中选择一种。

Token有个不好的地方是,有时你在项目或代码库里不得不用环境变量隐藏它,因为你不想提交时把它也一并提交暴露给其它用户。另外一些部署工具对Token的支持也十分有限,比如我就碰上在hexo的部署中hexo-deployer-git这个工具对Token不能很好支持的情况。另外,通常您必须为Token设置个有效期。这种情况下,使用ssh公钥似乎是一种更方便的选择。SSH的问题是,您必须在电脑上配置好公钥,并在github中设置它,大多数人不会有超过三台以上的开发电脑,所以这个ssh应该是最方便的选择。

一、在电脑上创建ssh密钥对

Linux电脑的ssh密钥一般存放在用户目录下的.ssh隐藏目录中,您可以查看一下当前的~/.ssh下是否已经有了类似id_rsa.pub或id_ed25519.pub密钥文件。如果已经有便可以省掉创建过程,直接使用。
要创建ssh密钥对,请用下面指令:

ssh-keygen -t ed25519 -C "your_email@example.com"

您还需要添加密钥到ssh-agent中

ssh-add ~/.ssh/id_ed25519

我们需要先复制好id_ed25519.pub中的内容,以便在github上添加。

二、在github上添加公钥
Github的用户Setting左侧菜单下有个SSH and GPG keys,我们点击New SSH key来添加一个密钥,为密钥起个名称,比如你的机器型号或IP,然后在正文中粘贴之前复制的公钥内容。

三、验证和测试

我们可以在linux中用命令行来验证刚才添加的密钥是否可行:

ssh -T git@github.com

如果出现提示: You’ve successfully authenticated, but GitHub does not provide shell access. 表明密钥已经成功设置,您接下来就可以用ssh密钥免登录提交了。

注意,为了使用ssh key,您在远程库的配置中将只能用git而不能用https,因此如果您之前是https操作的话,就要把远程库中的https替换成git的方式。具体办法如下:

原url是:
https://github.com/username/repo_url
应变成:
git@github.com:username/repo_url


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用ssh密钥实现Github免密提交
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址