Github使用ssh密钥登陆

  • 生成SSH密钥
  • 配置Github
  • 检查SSH连接
  • 使用Github
  • 附录:更改密钥名称
    • 方法一:为已创建的密钥改名
    • 方法二:创建时使用新的名称
  • 参考链接

想要从linux命令行clone github仓库的话,目前不支持HTTPS的方式了。那么不想使用Github CLI 的话,就必须配置SSH连接了。

这里就总结一下如何生成ssh 公钥私钥,并配置以登陆github

生成SSH密钥

Linux自带生成SSH密钥的程序。
打开终端,不用开启root,输入

ssh-keygen -t rsa

就会在~/.ssh下生成一个私钥id_rsa,和一个公钥id_rsa.pub

生成过程中会询问是否设置passphrase,这就相当于保护这个私钥的密码,避免被破译。

安全起见,建议设置密码。

配置Github

  1. 复制公钥文件的内容(可以用cat命令查看),

    cat ~/.ssh/id_rsa.pub
    
  2. Github中,打开 Settings > SSH and GPG keys > New SSH key
    .



  1. Key文本框中粘贴上复制好的公钥内容,并且设置好Title后,点击Add SSH key
    .

检查SSH连接

Linux命令行中输入

ssh -T git@github.com

如果设置了passphrase,此时会被要求输入设置好的passphrase

Enter passphrase for key 'pass/to/private/key':

之后,如果收到下面的提示,则表示设置成功。

Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.

否则,可能会看到这样的提示

Permission denied (publickey).

这时可以参考这个链接进行问题解决 Error: Permission denied (publickey)

如果除了permission denied以外,还出现了:sign_and_send_pubkey: signing failed: agent refused operation的报错提示,有两种解决方法:

  1. .ssh文件夹由于手动创建的原因权限不足。运行下面这行代码即可

    chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
    
  2. 密钥没有被添加到缓存中。运行ssh-add来添加,随后运行ssh-add -l来检测是否添加成功

使用Github

现在,就可以开心的在Linuxclone各种github仓库了

附录:更改密钥名称

如果觉得id_rsa这样的名字不够让人满意的话,可以通过下面的方式改名。

方法一:为已创建的密钥改名

首先,用mv之类的命令更改~/.ssh中的密钥名。

mv id_rsa new_private_key_name
mv id_rsa.pub new_public_key_name.pub

但是这样有时还是会出现Permission denied (publickey).这样的情况.

这是因为,ssh命令默认只会读取id_rsa这个私钥,所以如果改变私钥名称的话,需要相应地修改配置文件~/.ssh/config

比如像下面这样:

Host github.com gist.github.com api.github.com
IdentityFile /path/to/renamed/private/key

方法二:创建时使用新的名称

Linux下创建SSH密钥时,可以利用参数指定新的名称

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

如果出现Permission denied (publickey),请参照方法一中的解决办法。

参考链接

generating SSH keys - Github

common SSH problems - Github

ssh-keygen之后,生成的密码都叫id_rsa.pub,我想改名不行吗?- segmentfault

SSH原理与运用 - 阮一峰的网络日志

How to solve “sign_and_send_pubkey: signing failed: agent refused operation”?

Github使用ssh密钥登陆相关推荐

  1. 地平线旭日X3派试用 | ssh密钥登陆 蓝牙手柄连入ros

    1.ssh密钥登陆 ssh登陆开发作为必修课,默认密码登陆不安全又得每次输密码,有点不雅,改之.在windows上使用的是Fluent Terminal(个人使用习惯). 1.1 因为经常使用macb ...

  2. MAC SSH密钥登陆

    MAC SSH密钥登陆: 一般mac如果想通过ssh密钥登陆,常规的做法,自己生成密钥对,这样做的好处就是,自己只保留私钥即可,公钥 可以放置任意服务器, 如果接受别人给的私钥,只能存一个,如果有多个 ...

  3. GitHub 忘记SSH密钥

    首先查看本地是否有.ssh文件 打开 Git Bash 后 运行cd ~/.ssh查看是否有该文件 如果本地有ssh密钥的话会有id_rsa.id_rsa.pub.known_hosts等文件. 如果 ...

  4. GitHub配置SSH密钥

    一.生成SSH密钥 打开cmd或Git Bash输入,执行后有选项,一直按回车即可 ssh-keygen -t rsa 文件生成在用户文件夹下的.ssh目录中,我的是C:\Users\Tomato\. ...

  5. 配置Centos7 SSH密钥登陆及密码密钥双重验证

    一.首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令: su root cd ~ 二.创建钥匙,命令:ssh-keygen -t rsa,一路按Y搞 ...

  6. 实现SSH密钥登陆Linux系统的方法(Linux公私钥生成)

    密钥对实现思路 秘钥对配置文件 一,系统有秘钥对要实现秘钥登录的方式: 1,确认Linux系统有免密登录文件 SSH免密登陆设置 # cd /root/.ssh/ #ll authorized_key ...

  7. Centos7 SSH密钥登陆及密码密钥双重验证

    一.首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令: su root cd ~ 二.创建钥匙,命令:ssh-keygen -t rsa,一路按Y搞 ...

  8. git连接到github(SSH无密码登陆)

    [0]README 0.1)本文旨在尝试在linux环境下免密码连接到github,并进行push + pull projects in github by git commands. 0.1) 对s ...

  9. 烂泥:学习ssh之ssh无密码登陆

    本文首发于烂泥行天下 最近一个月没有写过文章,主要是刚刚换的新工作.新公司服务器OS使用的是ubuntu server版,和以前熟悉的centos还是有很多不同的. 刚好这几天有时间,也是工作需要,学 ...

最新文章

  1. python property内建函数的介绍
  2. 苏联最早批量生产的晶体三极管
  3. 内存分析工具MAT的使用
  4. lamba统计最大值,最小值,平均值,总和,个数
  5. ES6 数组、对象的扩展
  6. Linux运维学习大纲
  7. mysql 复制功能_从MySQL复制功能中得到的一举三得实惠分析
  8. SQL ALTER TABLE 语句在项目中的使用
  9. 微信小程序审核不通过的解决方法
  10. php代码执行函数解析
  11. 阿拉伯数字转中文数字(大写或小写)
  12. Android广告图片轮播控件
  13. 如何建立个人的免费网站
  14. hiredis-vip
  15. 简单处理Ubuntu无法联网的问题
  16. github上fork,star,watch是什么意思
  17. oracle ora00353,ORA-00354 ORA-00353 ORA-00312异常处理
  18. 【数学建模暑期培训】Matlab绘图命令
  19. 基于新型的MEMS气体微密度计的密度和浓度测量应用
  20. 如何给el-table表格的指定单元格设置颜色

热门文章

  1. Java数组的赋值机制
  2. jquery实现app开发闹钟功能_趣味闹钟APP开发,随意切换闹钟叫醒功能
  3. C语言位操作详解(全网最全)
  4. 17 款程序员必备 Chrome扩展插件,爱了爱了
  5. 《Redis设计与实现》第4章 字典
  6. 转 精辟,太生动了,太形象了。应用于实践,价值无比!
  7. 该选哪个执行价的期权合约?
  8. 德州仪器启用深圳全新自动化产品分拨中心;SGS宣布与微软、中兴通讯等公司合作;阿维塔科技完成首轮战略融资 | 全球TMT...
  9. mac chrom添加vue-devtools
  10. PL/SQL修改表名