GitHub第一步--生成ssh keys

本文详细介绍了如何在MacOS和centOS中使用SSHkeys实现无密码更新GitHub仓库的方法,包括检查现有SSHkeys、生成新的SSHkey、将其添加到ssh-agent、添加到GitHub账户以及测试连接等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自个人博客:http://siukwan.sinaapp.com/

亲自在Mac OS和cent OS中测试成功,命令均一样。

SSH keys可以无需密码进行github更新,每台电脑均需要生成唯一的SSH并添加到github个人资料的settings中。

Step 1: 检查SSH keys

首先我们需要检测系统是否已经存在SSH keys,可以使用终端输入下列的命令:

ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

如果存在,可以看到如下的列表:

  • id_dsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

如果想使用现有的SSH keys,可以忽略步骤2和步骤3,如果没有现成的SSH keys,我们接下来会通过终端来生成。

Step 2: 生成SSH key

  1. 输入下面的命令,其中需要填写自己的邮箱:
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    # Creates a new ssh key, using the provided email as a label
    # Generating public/private rsa key pair.
    
  2. 使用默认设置即可,直接按回车:
    # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
    
  3. 这个也可以直接按回车:
    # Enter passphrase (empty for no passphrase): [Type a passphrase]
    # Enter same passphrase again: [Type passphrase again]
  4. 最后我们会看到下面的信息:
    # Your identification has been saved in /Users/you/.ssh/id_rsa.
    # Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
    # The key fingerprint is:
    # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
    

Step 3: 把生成的key添加到ssh-agent

ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,原型ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以自动将验证申请交给ssh-agent来完成整个认证过程。

  1. 先检查ssh-agent是否在运行:
    # start the ssh-agent in the background
    eval "$(ssh-agent -s)"
    # Agent pid 59566
    
  2. 把SSH key添加ssh-agent:
    ssh-add ~/.ssh/id_rsa
    

注意:如果你采用现有的SSH keys,你需要把id_rsa(这是一个文件名)替换成现有的私钥文件名。

Step 4: 把SSH key添加到github账户

这个时候需要复制id_rsa.pub的内容,即SSH key,注意这个文件不一定是id_rsa.pub,有可能是id_dsa.pub,id_ecdsa.pub or id_ed25519,需要看自己的设置。

pbcopy < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

 

详细步骤:

1.

  1. Settings icon in the user bar进入个人账户的Settings.

  1. 2.
  2. SSH keys选择SSH keys.

  3. 3.
  4. SSH Key button点击Add SSH key.

  5. 4.添加title,题目可为 "Personal MacBook Air",根据自己的情况添加。

  6. 5.
  7. The key field复制key.

  8. 6.
  9. The Add key button点击Add key.
  10. 最后会要求输入github的密码进行确认.

Step 5: 测试连接

在完成上述步骤后,可以测试连接,确保ssh正常工作。在尝试ssh连接时,github会提示认证。

  1. 打开终端并输入:
    ssh -T git@github.com
    # Attempts to ssh to GitHub
    
  2. 然后会看到下面的警告:
    # The authenticity of host 'github.com (207.97.227.239)' can't be established.
    # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    # Are you sure you want to continue connecting (yes/no)?
    

    输入yes:

    # Hi username! You've successfully authenticated, but GitHub does not
    # provide shell access.
    
  3. 看到上面的信息后证明你已经成功ssh连接到github!

    If you receive a message about "access denied," you can read these instructions for diagnosing the issue.

    If you're switching from HTTPS to SSH, you'll now need to update your remote repository URLs. For more information, see Changing a remote's URL.

<think>好的,用户想在Linux系统上生成用于GitHubSSH密钥。我需要根据提供的引用信息来整理步骤。首先,引用[2]提到检查现有的SSH密钥,如果存在id_rsa.pub或id_dsa.pub,可以直接进入添加步骤,否则需要生成新的密钥。用户可能不知道如何检查现有密钥,所以第一步应该是指导他们使用ls命令查看~/.ssh目录下的文件。 接下来,如果没有找到密钥,用户需要生成新的。引用[2]和引用[4]都提到了使用ssh-keygen命令,这里需要详细说明命令的参数,比如-t指定类型,-C添加注释。用户可能需要设置密码,所以需要解释passphrase的作用,并说明如何跳过设置(直接回车)。 生成成功后,需要将公钥添加到GitHub账户。引用[1]提到使用Github CLI,但用户可能更熟悉手动操作,所以应该包括用cat命令显示公钥内容,并复制到剪贴板的步骤。同时,提供GitHub网页上的具体路径,如Settings -> SSH and GPG keys,确保用户能找到正确的位置。 另外,引用[3]中的ssh-add可能用于将密钥添加到ssh-agent,这一步可能在生成密钥后有用,尤其是如果用户设置了密码的话。需要说明如何启动ssh-agent并添加私钥,以方便后续使用。 用户的问题可能还涉及测试SSH连接,比如使用ssh -T git@github.com来验证是否成功。这可能不在现有引用中,但作为常见步骤应该包含进去,以帮助用户确认配置正确。 最后,确保步骤清晰,使用代码块显示命令,并解释每个步骤的目的,比如为什么需要公钥添加到GitHub。同时,相关问题的生成需要考虑用户可能的后续疑问,如测试连接、处理权限问题、多密钥管理等,这些都是用户在使用SSH时常见的问题。</think>### 如何在Linux系统上生成用于GitHubSSH密钥 #### **步骤1:检查现有SSH密钥** 输入命令检查是否已有SSH密钥: ```bash ls -al ~/.ssh ``` 如果看到`id_rsa.pub`或`id_dsa.pub`文件,可直接跳至步骤3[^2]。 --- #### **步骤2:生成SSH密钥** 1. 使用`ssh-keygen`命令生成密钥对: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` - `-t ed25519`:指定密钥算法(推荐使用Ed25519) - `-C`:添加注释(一般为GitHub注册邮箱) 2. 按提示操作: - 保存路径:直接回车使用默认路径`~/.ssh/id_ed25519` - 设置密码(可选):输入`passphrase`或留空直接回车[^4] --- #### **步骤3:添加SSH密钥到GitHub** 1. 复制公钥内容: ```bash cat ~/.ssh/id_ed25519.pub ``` 选中终端输出的全部内容(以`ssh-ed25519`开头) 2. 登录GitHub- 进入 **Settings → SSH and GPG Keys → New SSH Key** - 将复制的公钥粘贴到输入框,命名后保存[^1] --- #### **步骤4:验证连接** 输入命令测试SSH连通性: ```bash ssh -T git@github.com ``` 若显示`You've successfully authenticated`则配置成功[^3]。 --- ### **相关问题** 1. 如何为不同的Git平台(如GitLab)生成独立的SSH密钥? 2. SSH连接时提示`Permission denied (publickey)`如何排查? 3. 如何修改现有SSH密钥的密码(passphrase)? 4. 为什么推荐使用Ed25519算法而非RSA?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值