Skip to content
分类目录:

如何配置SSH连接github

Post date:
Author:

如何使用SSH连接github:

输入指令确保安装SSH

# 显示ssh 版本号
ssh -V

在生成 SSH 密钥时,passphrase(密码短语) 是一个额外的安全措施,用于保护你的私钥。即使你的私钥文件被泄露,没有 passphrase,攻击者也无法使用它。以下是一些关于 passphrase 的详细信息和操作指南:

什么是 Passphrase?

Passphrase 是一个用户设置的字符串,用于加密和解密你的 SSH 私钥文件。当你使用 SSH 密钥进行身份验证时,系统会提示你输入这个 passphrase,以确保只有知道 passphrase 的用户才能使用该密钥。

本地生成 SSH 密钥

打开终端或命令行工具:

  • Windows 用户可以使用 Git Bash 或 PowerShell。
  • macOS/Linux 用户直接打开终端应用。

生成新的 SSH 密钥对:

在终端中输入以下命令,按提示操作。这里我们将为密钥指定一个标签(如邮箱),以便识别:bash

ssh-keygen -t ed25519 -C "your_email@example.com"
# 会提示保存路径和是否需要passphrase

如果你的系统不支持 ed25519,可以使用更常见的 RSA 算法,只需将 -t ed25519 替换为 -t rsa

保存密钥文件

公钥和私钥会分别保存到两个文件中,公钥的文件名以.pub结尾。

  • 按回车接受默认路径(通常是 ~/.ssh/id_ed25519~/.ssh/id_rsa),或者选择当前目录
  • 设置密码保护(可选但推荐),这将增加安全性。如果不设置,直接按回车即可

Windows上的默认位置是C:\Users\<user>\.ssh\

启动 SSH 代理并添加私钥

启动 SSH 代理 (SSH agent)

Linx/MacOS

对于大多数 Linux 和 macOS 系统,可以在终端中输入以下命令:bash

eval "$(ssh-agent -s)"
Windows系统:

有两种方式打开SSH Agent:

方式1:使用Git bash

打开Git bash,输入指令 eval “$(ssh-agent -s)” ,开启 SSH Agent

注意:此方式打开的SSH Agent,当关闭git bash后,SSH Agent即同样会被关闭

方式2:使用Windows系统内置的OpenSSH

Windows 11系统已经内置了OpenSSH,在服务中可找到 :

Windows的系统中的SSH代理服务为:OpenSSH Authenticaiton Agent,需要启动该服务才行。

OpenSSH程序所在路径:”C:\Windows\System32\OpenSSH\ssh.exe”

在 PowerShell 中使用 Start-Service ssh-agent 启动服务,或者在服务中开启

# 检查服务是否已安装
Get-Service ssh-agent
# 设置服务自动启动
Set-Service -Name ssh-agent -StartupType Automatic
# 启动服务
Start-Service ssh-agent

注意:方式1和方式2的OpenSSH是两个不同的进程,方式1是Git自带的配置

如果要使用方式2,即使用Windows自带的SSH Agent,需要对Git 进行配置,Git才会从OpenSSH Agent中查找私钥。

配置方法:

找到Git的配置文件:”..ProgramFiles\Git\etc\gitconfig”,并用文本文档打开

在 [core] 区域下,添加 配置,指向 Windows 操作系统的Open SSH Agent

[core]
	sshCommand = \"C:/Windows/System32/OpenSSH/ssh.exe\"

添加私钥到 SSH 代理:

将私钥文件放置于安全的目录中,打开Terminal,执行以下指令,添加私钥到SSH 代理。

# ssh-add <密钥文件全路径>
ssh-add C:\Users\.ssh\MyPrivateKeyFile
# 查询agent中添加的密钥
ssh-add -l
# 删除所有密钥
ssh-add -D

注意:如果私钥文件是放在公共目录,则可能会添加失败,提示权限设置的不够严格。

解决办法:将私钥文件放在 “C:\Users\<user>\.ssh\ ” 文件夹中管理,或者修改文件的访问权限。

将公钥添加到 GitHub

复制公钥内容: 打开公钥文件(如 ~/.ssh/id_ed25519.pub),复制其中的所有文本。可以使用以下命令查看公钥文件内容,并复制全部内容:

登录 GitHub 并添加 SSH 密钥

  • 访问 GitHub SSH and GPG keys 页面
  • 点击“New SSH key”按钮。
  • 在“Title”字段中给这个密钥起个名字,例如“My Laptop”。
  • 将之前复制的公钥粘贴到“Key”字段中。
  • 点击“Add SSH key”

可以通过bash“ssh-add -l”列出的内容与github中的添加的SSH进行比较,两者间应该一致。

测试 SSH 连接

在终端中输入以下命令,测试是否能成功通过 SSH 连接到 GitHub:

git@github.com:是github仓库SSH地址的前缀。

ssh -T git@github.com

第一次连接时,系统会询问是否继续连接,输入 yes。如果成功,你会看到类似以下的输出:

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

这表明你的 SSH 密钥已经成功配置

配置本地仓库 Git 使用 SSH

git remote -v

git remote set-url origin git@github.com:username/repo.git
豫ICP备2021008859号-1