ssh 公私钥(github)

一、生成ssh公私钥

生成自定义名称的SSH公钥和私钥对,需要使用ssh-keygen命令,这是大多数Linux和Unix系统自带的标准工具。下面,简单展示如何使用ssh-keygen命令来生成具有自定义名称的SSH密钥对

步骤 1: 打开终端

首先,打开我们的终端(或命令提示符)。在Windows上,我们可能需要使用PuTTYgen或者通过Git Bash来执行相似的命令,但这个指南将关注标准的Unix-like环境。

步骤 2: 生成密钥对

接下来,使用以下命令生成一个新的SSH密钥对。这里,your_custom_name应该被替换为我们想要用于密钥文件的名称。不要加.pub或者任何其它的后缀,因为ssh-keygen会自动为公钥文件添加.pub后缀。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/your_custom_name

这条命令中的参数说明如下:

  • -t rsa: 指定密钥类型,这里是RSA。
  • -b 4096: 指定密钥的位数,这里是4096位,当前推荐的安全长度。
  • -C "your_email@example.com": 添加一个注释(通常是电子邮件地址)到密钥中。这对于识别用途在哪、属于谁很有帮助。
  • -f ~/.ssh/your_custom_name: 指定生成密钥的路径和文件名。这里~/.ssh/是SSH目录的标准位置,your_custom_name是你的自定义文件名。

步骤 3: 输入密码(可选)

在执行命令后,系统可能会提示我们输入一个密码(passphrase)。这一步是可选的,但是推荐我们为密钥对设置一个密码以增加安全性。如果不想设置密码,直接按回车键跳过。

步骤 4: 验证生成的密钥

生成密钥对后,我们可以通过列出~/.ssh目录的内容来验证它们是否成功创建:

ls ~/.ssh

应该看到我们的自定义文件名和同名的.pub文件,例如:

your_custom_name  your_custom_name.pub

your_custom_name是私钥文件,而your_custom_name.pub是公钥文件。

步骤 5: 使用SSH密钥

现在我们已经有了自定义命名的SSH密钥对,可以开始使用它们了。例如,我们可以把公钥(.pub文件)添加到想要通过SSH连接的服务器上的~/.ssh/authorized_keys文件中,从而实现无密码登录。

这样,我们就成功生成了一个自定义命名的SSH密钥对。确保保管好私钥,并且只将公钥共享给需要它的服务或个人。

二、 git 上传项目

手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了),相信你一定能成功!! - 知乎GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。 GitHub可以免费使用,并且快速稳定。即使是付费帐户,每个月不超过10美刀的费用也非常便宜。 利用GitHub,你可以将…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/193140870

本地项目目录
git init
git add .
git commit -m "提交文件"
git remote add origin git@github.com:XXXXXX/XXXXXXXX.git

上传
git push -u origin master     输入 yes

三、尝试向GitHub推送代码时收到"Permission denied (publickey)"错误

当在尝试向GitHub推送代码时收到"Permission denied (publickey)"错误,意味着GitHub无法通过公钥认证的SSH连接。这个问题通常由以下几个原因引起:

  1. 未将SSH公钥添加到GitHub账户:GitHub需要公钥来验证身份。
  2. SSH密钥没有加载到SSH代理:即使有一个SSH公钥,它也需要被SSH代理加载。
  3. SSH配置问题:有时候SSH配置不正确也会导致这个问题。

按以下步骤来解决这个问题:

步骤 1: 确认SSH公钥已添加到GitHub

  1. 在你的电脑上打开终端,使用cat命令查看你的公钥内容。假设密钥名称为id_rsa.pub,运行:

    cat ~/.ssh/id_rsa.pub

    如果使用的是其他名称,请相应地替换文件名。

  2. 登录到GitHub账户,进入Settings > SSH and GPG keys

  3. 点击New SSH key 按钮,将公钥(步骤1中显示的内容)粘贴到框中,并保存。

步骤 2: 确认SSH密钥已加载到SSH代理

  1. 运行ssh-add -l查看已加载的密钥。如果密钥已加载,这个命令将列出它们。

  2. ssh-add -l
  3. 如果你的密钥没有被列出,使用ssh-add ~/.ssh/id_rsa来添加它。如果你使用的是自定义名称,确保正确地替换了路径和文件名。

  4. ssh-add ~/.ssh/custom_id_rsa

步骤 3: 尝试SSH到GitHub

运行以下命令来测试你的SSH连接到GitHub:

ssh -T git@github.com

如果连接成功,你将看到一条欢迎信息。这表示SSH设置正确。

步骤 4: 再次尝试git操作

在确认SSH设置无误后,再次尝试执行你的git命令:

git push -u origin master

怎么删除之前添加的一些无效的SSH代理呢?

删除之前add的无效SSH代理的方式

假设之前添加了几个不同的密钥到SSH代理,现在想删除它们:

  1. 查看已加载的密钥

    ssh-add -l
  2. 删除特定的密钥(例如:~/.ssh/custom_key):

    ssh-add -d ~/.ssh/custom_key
  3. 删除所有的密钥:

    ssh-add -D

相关推荐

  1. Github添加SSH

    2024-03-29 08:52:04       17 阅读
  2. github ssh过期解决记录

    2024-03-29 08:52:04       44 阅读
  3. Github Gitlab SSH配置

    2024-03-29 08:52:04       19 阅读
  4. Git | SSH连接到 GitHub

    2024-03-29 08:52:04       10 阅读
  5. github / gitlab s申城 配置密 ssh key

    2024-03-29 08:52:04       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 08:52:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 08:52:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 08:52:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 08:52:04       18 阅读

热门阅读

  1. 配置SSH后 GitHub无法使用了

    2024-03-29 08:52:04       18 阅读
  2. 详解IOS的Automatically Sign在设备上打包

    2024-03-29 08:52:04       18 阅读
  3. Flink集群启动脚本分析

    2024-03-29 08:52:04       16 阅读
  4. HTML文本信息

    2024-03-29 08:52:04       14 阅读
  5. 说说常见的几种排序算法和复杂度

    2024-03-29 08:52:04       21 阅读
  6. FlinkSQL之Flink SQL Join二三事

    2024-03-29 08:52:04       20 阅读
  7. 前端基础复习--HTML篇

    2024-03-29 08:52:04       17 阅读
  8. Linux查询|搜索|过滤|文本日志命令汇总

    2024-03-29 08:52:04       19 阅读
  9. 篇四.软件测试管理办法

    2024-03-29 08:52:04       17 阅读
  10. linux: du用法详解

    2024-03-29 08:52:04       15 阅读
  11. c++ 的左值和右值如何理解

    2024-03-29 08:52:04       16 阅读
  12. C#WPF的XAML命名空间和命名空间映射详解

    2024-03-29 08:52:04       20 阅读
  13. C# Stopwatch 计时器

    2024-03-29 08:52:04       20 阅读
  14. Docker搭建MinIO

    2024-03-29 08:52:04       19 阅读