Mac电脑用终端生成SSH key 访问自己的Github

首先检测自己电脑是否存在 SSH key

在生成SSH密钥之前,您可以检查是否有任何现有的SSH密钥。

  1. 打开终端

  2. 输入ls -al ~/.ssh以查看是否存在现有SSH密钥:

    1
    2
    ls -al ~/.ssh
    # 列出.ssh目录中的文件(如果存在的话)
  3. 检查目录列表以查看您是否已拥有公共SSH密钥。

    • 如果你本地没有生成的话
      终端上面会显示:No such file or directory
    • 如果已经存在的话,
      则会显示 id_rsa 和 id_rsa.pub

如果本地没有的话,我们要自己生成新的SSH秘钥

  1. 开放式终端。

  2. 输入下面的命令,记得替换您的GitHub电子邮件地址。

    1
    2
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    #"your_email@example.com"为示例邮箱,此处应填写为你在github上面注册的邮箱。

    这将使用提供的电子邮件作为标签创建一个新的ssh密钥。

    Generating public/private rsa key pair.

  3. 当系统提示您“输入要保存密钥的文件”时,按Enter键使用默认文件位置。

    Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

  4. 在提示符下,键入安全密码。可以连续Enter,不设置密码。

    Enter passphrase (empty for no passphrase): [Type a passphrase]
    Enter same passphrase again: [Type passphrase again]

成功后,终端显示

Your identitification has been saved in /Users/xxx/.ssh/id_rsa.
Your public key has been saved in /user/xxx/id_rsa.pub.
the key fingerprint is xxxxxxxxxx…….xxxxxxxx your_email@example.com
The key’s randomart image is:
-w465

将SSH密钥添加到ssh-agent

  1. 在后台启动ssh-agent

    1
    2
    eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. 终端输入命令:
    ssh-add -K ~/.ssh/id_rsa
    如果设置密码,此时会要求输入passphrase(输入步骤 二 中的 passphrase就好 )

成功后,中选显示:

Identity added: /Users/xxx/.ssh/id_rsa (your_email@example.com)

添加SSH key 到Github 上

  1. 将SSH密钥复制到剪贴板。

    1
    2
    pbcopy < ~/.ssh/id_rsa.pub
    # 复制id_rsa.pub的内容到剪贴板
    提示:如果pbcopy不起作用,您可以找到隐藏.ssh文件夹,在文本编辑器中打开id_rsa.pub文件,然后将文件内容复制到剪贴板。
    
  1. 在任意页面的右上角,单击您的个人资料照片,然后单击“Settings”。

  2. 在用户设置侧栏中,单击“SSH and GPG keys”。

  3. 单击“ New SSH key”

  4. 在“Title”字段中添加描述性标签,Key字段中粘贴您复制的id_rsa.pub内容。最后点击“Add SSH key”

  5. 最后请确认您的GitHub密码。

如何检测SSH key

  1. 终端输入命令:ssh git@github.com

  2. 验证SSH key是否有权限访问 你的 github,输入“yes”

    The authenticity of host ‘github.com (13.250.177.223)’ can’t be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no)? yes

  3. 成功会显示为

    Hi you name! You’ve successfully authenticated, but GitHub does not provide shell access.