关于 SSH

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。

使用 SSH 协议可以连接远程服务器和服务并向它们验证。 利用 SSH 密钥可以连接 GitHub,而无需在每次访问时都提供用户名和个人访问令牌。

检查现有 SSH 密钥

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

  1. 打开 终端
  2. 输入 ls -al ~/.ssh 以查看是否存在现有 SSH 密钥:
    1
    $ ls -al ~/.ssh
  3. 检查目录列表以查看是否已经有 SSH 公钥。 默认情况下,公钥的文件名是以下之一
    • id_rsa.pub
    • id_ecdsa.pub
    • id_ed25519.pub

生成 SSH 密钥

如果未存在 SSH 密钥,可主动生成 SSH 密钥。

  1. 打开 终端
  2. 粘贴下面的文本(替换为您的 GitHub 电子邮件地址)
    1
    $ ssh-keygen -t ed25519 -C "your_email@example.com"
  3. 提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。
    1
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519):[Press enter]
  4. 在提示时输入安全密码
    1
    2
    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

新增 SSH 密钥到 GitHub 帐户

在新增 SSH 密钥到 GitHub 帐户后,您可以重新配置任何本地仓库使用 SSH。

  1. 将 SSH 公钥复制到剪贴板
    1
    $ clip < ~/.ssh/id_ed25519.pub

    提示:如果 clip 不可用,可找到隐藏的 .ssh 文件夹,在常用的文本编辑器中打开该文件,并将其复制到剪贴板。

  2. 在 Github 右上角,单击您的个人资料照片,然后单击 Settings(设置)。
  3. 在用户设置侧边栏中,单击 SSH and GPG keys(SSH 和 GPG 密钥)。
  4. 单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥)。
  5. 将密钥粘贴到 “Key”(密钥)字段, Title 部分可填写你的设备标识(如 My PC)便于管理。

测试 SSH 连接

  1. 打开终端输入一下内容:

    1
    $ ssh -T git@github.com

    当你在终端看到一下消息则说明已成功

    1
    > Hi username! You've successfully authenticated, but GitHub does not provide shell access.
  2. 验证生成的消息包含您的用户名。 如果收到“权限被拒绝”消息,请参阅“错误: 权限被拒绝(公钥) ”。

如果上面一切顺利的话,自己所属的该设备再提交代码时就不会再要求输入邮箱密码信息了。

文章参考