ChatGPT解决这个技术问题 Extra ChatGPT

SSH 密钥 - 仍然要求输入密码和密码

当我克隆存储库时,我一直在某种程度上“忍受”Github 总是询问我的用户名和密码。我想绕过这一步,因为它在我的工作流程中很烦人。

我尝试使用本指南设置 SSH 密钥(我成功地做到了)。 https://help.github.com/articles/generating-ssh-keys 我成功了。

我的问题是,在克隆存储库(使用 SSH)时,我仍然被要求输入我的 github 密码和密码。我的理解是,在我设置了这个 SSH 密钥之后,我将不再需要这样做。

我有点不确定要问什么,所以我将陈述我的目标。

我希望能够克隆存储库,而不必一直输入我的 Github 信息。

我的 SSH 密钥缺少什么?如果有人可以提供一些指导或资源,我将不胜感激,因为当谈到 GitHub 中的 SSH 身份验证时,我总是感到有些失落。

据我所知,这是一个测试一切是否正常运行的命令,以下是我控制台的输出:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

当我输入密码时,应该先失败吗?然后,当我输入密码时,它就通过了。

你在哪个操作系统中?现代 Linux 桌面会建议将您的密码存储在密钥环管理器中。在 Mac OS X 中相同。在 Windows 中,您可以使用 pageant,它是 putty 的一部分。在所有这些中,目标都是相同的:您在启动 PC 后只输入一次密码,密钥管理器代理将在后续使用中将其传递给 ssh,直到您重新启动。
我在这里聚会有点晚了,但是在 github 的小克隆选项卡/按钮上有一个链接,上面写着“使用 SSH”。你想这样做。它将您的克隆链接更改为“git@github:username/project.git”之类的内容。如果你向 github 添加了一个 SSH 密钥并让它在本地的 ssh-agent 上运行,那么你应该能够在不输入用户名或密码的情况下进行推送。

O
OLIVER.KOO

添加没有钥匙串的身份

有时您可能不希望密码短语存储在钥匙串中,但又不想一遍又一遍地输入密码短语。

你可以这样做:

ssh-add ~/.ssh/id_rsa 

这将要求您输入密码,输入它,直到您重新启动它才会再次询问。

使用钥匙串添加身份

正如@dennis 在评论中指出的那样,要通过将密码存储在您的钥匙串中来通过重启来保持密码,您可以在添加这样的身份时使用 --apple-use-keychain 选项(对于 Ubuntu 是 -k):

ssh-add --apple-use-keychain ~/.ssh/id_rsa

再一次,这会要求你输入密码,输入它,这一次它不会再要求这个身份。


请注意,这不会在重新启动时保留身份。添加密码时,您可以使用 -K 选项将密码存储在钥匙串中,例如 ssh-add -K ~/.ssh/id_rsa
小写 -k 对我来说......(Linux Mint / Ubuntu 14.04 base)但是是的!终于把这个整理好了……
只需运行命令“ssh-add”并输入一次密码,命令行不会再次提示您输入密码。
你不需要任何论据;仅运行 ssh-add 将自动添加 ~/.ssh/id_rsa(在其他文件中)。并且没有理由将输出发送到 /dev/null;更好地看到它做了什么的报告。
知道为什么我得到“无法打开与您的身份验证代理的连接。”吗?
S
Simon Boudrias

如果您使用 HTTPs 网址,它总是会询问您的用户名/密码。

如果您在克隆/设置遥控器时正确使用了 SSH。然后确保你有一个 ssh-agent 来记住你的密码。这样,您只需通过终端会话输入一次密码。

如果它仍然太烦人,那么只需设置一个不带密码的 ssh-key。


感谢您的回复。我一直只使用 HTTPs。我正在尝试实现 SSH 身份验证,并认为我设置了它。我需要安装 git 之外的 ssh-agent 吗?谢谢
我只想指出,密码是用来加密你的私钥的,所以如果你不使用密码,那么你的私钥在你的机器上将是未加密的。这就像在您计算机上的文本文件中留下密码一样。
有趣的是,我的 HTTPS 存储库从不要求输入密码,而我的 SSH 存储库总是这样做。
See this github doc 将远程 URL 从 https 转换为 ssh。要检查远程的 URL 是 ssh 还是 https,请使用 git remote -v。从 https 切换到 ssh:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
被否决是因为“什么”应该包括“如何”。
G
Groot

在 Mac OSX 上,您可以使用以下命令将您的私钥添加到钥匙串中:

ssh-add -K /path/to/private_key

如果您的私钥存储在 ~/.ssh 并命名为 id_rsa:

ssh-add -K ~/.ssh/id_rsa

然后将提示您输入密码,该密码将存储在您的钥匙串中。

编辑 - 处理重启

为了即使在重新启动后也不必填写密码,请将以下内容添加到您的 ssh 配置文件(通常位于 ~/.ssh/config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

就我而言,重启后它仍然提示输入密码(macOS Sierra 10.12.2)。关于如何解决这个问题的任何想法?
没关系,我刚刚发现了问题。这是 Mac OS X 10.12 的一个错误(功能?),其中 ssh-agent 在启动期间不会自动在钥匙串上加载密码短语。 github.com/lionheart/openradar-mirror/issues/15361
@Groot,顺便说一句,按照其他答案中的建议,将“Host * UseKeychain yes”添加到“~/.ssh/config”,解决了这个问题。
这应该是公认的答案。特别是 ~/.ssh 中的配置文件
我不断收到提示“输入密钥 .ssh/id_rsa 的密码:” - ssh-add -K ~/.ssh/id_rsa 解决了这个问题
C
ChrisJF

我在这里尝试了所有答案,但这些答案都没有奏效!我的密码在我的 Mac 的会话/重新启动之间不会保留。

我从阅读 this OpenRadarthis Twitter discussion 中发现,macOS 10.12 Sierra 中 ssh-agent 的 Apple purposely changed the behaviour 不再自动加载以前的 SSH 密钥。为了保持与 El Cap 相同的行为,我执行了以下操作:

ssh-add -K ~/.ssh/id_rsa 注意:将路径更改为 id_rsa 密钥所在的位置。 ssh-add -A 创建(或编辑,如果存在)以下 ~/.ssh/config 文件: Host * UseKeychain 是 AddKeysToAgent 是 IdentityFile ~/.ssh/id_rsa

现在我的密码在我的 Mac 重新启动之间被记住了!


这对于添加到 githubosx 文档页面可能很有用。最难弄清楚为什么我的 Mac 运行 10.11 而我的另一台运行 10.12 的 Mac 表现不同。
在 OSX 升级后发生在我身上,谢谢(如果您在 ~/.ssh/id_rsa 只有一个键,我认为不需要 ssh-add -A
我刚刚升级到 macOS 10.12,这非常有用。谢谢!
截至 2017 年 10 月,如果您使用的是 macOS 10.12 或更高版本,这个答案正是您正在寻找的。
这现在在 github 文档上:help.github.com/articles/…
J
Junaid

TL;DR 您需要使用 ssh 代理。为此,请打开终端并在推送到 git 之前,执行 ssh-add 在出现提示时输入您的密码。

查看原始 StackExchange 答案 here


这可行,但发生的情况是每次启动计算机时都必须重复此命令。
@WilliamGrand 虽然对我来说并非如此,但如果你这么说,当然,我相信你:]。我会看看我是否能找到任何东西,我会相应地更新答案。
s
sudo bangbang

您可以删除密钥的密码

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

或者你可以运行

$ ssh-keygen -p

您会收到输入密钥文件的提示。默认情况下它 ~/.ssh/id_rsa 所以按回车

系统会提示您输入当前密码短语。

然后会提示输入新密码,按回车


这应该高于将密码短语添加到钥匙串的许多几乎相同的答案。我不得不将我的公钥提供给管理员,并附上一个密码,每次输入都很烦人。当您对机器没有太多控制权时,这是一个干净的解决方案(-K-k-A 对我不起作用)。
这是在重新启动时唯一对我有用的东西,所有 ssh-add -K、-k 等命令都没有为我做任何事情。
它对我也很有效,我使用了第一种方法 ssh-keygen -p -P MyOldPassPhrase -N "" -f ~/.ssh/mykeyfile。谢谢!
这就是答案。
M
Mahtab Alam

确保您也将 ssh 用于您的存储库

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)

https://i.stack.imgur.com/LVnVW.png

不要使用 https,如果您的遥控器使用的是 https,那么即使您已将公钥添加到 Github 并将私钥添加到 ssh-agent,它也会不断询问密码。下面总是会要求输入密码

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)


是的,区分两种远程 URL 类型对我很有帮助。这在 git pullgit push 方面帮助了我。我将我的 url 从 HTTPS 类型切换到 SSH 类型,并且它起作用了——git pull 停止询问密码。
可以使用以下命令进行切换:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
S
Syden

只需运行以下命令:

ssh-add -K

它永远不会要求您再次输入密码。


这很好用,但我有点担心运行随机命令。但是,如果您检查文档 ssh-add 只是“将私钥身份添加到身份验证代理”,而 -K 选项只是使“添加身份时,每个密码短语也将存储在用户的钥匙串中”。
实际上,直到我重新启动它才修复它:(
在 Windows 的 bash shell 中,“-k”标志必须是小写的。仅供参考
选项 -K 在 ssh-add 的早期版本上不可用。这就是为什么它对许多人不起作用的原因。选项 -k(小写)不一样,下次打开会话时您必须重新输入密码。
B
Black

我不得不执行:

eval `ssh-agent -s`
ssh-add

注意:每次重新启动后,您都必须再次执行此操作。如果您想避免它,请将其输入到 Windows 上 C:\Users\<<USERNAME>>\.bashrc 中的“.bashrc”文件中。它可能是隐藏的,因此请确保您可以看到隐藏的文件。

找到解决方案 here


L
Lee Goddard

如果您使用的是 Windows,这对我有用:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

它会在第二个命令中要求输入密码,就是这样。

将这些行添加到您的 bash 配置文件 $HOME/.bash_profile$HOME/.bashrc


当您注销并重新登录时,您必须每次重新输入密码。
C
CM777

这个page on github有您需要的答案。您必须从 https 切换到 ssh 身份验证。

检查它是如何验证的,如下所示。

$ git remote -v
> origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
> origin  https://github.com/USERNAME/REPOSITORY.git (push)

使用 git remote set-url 命令将远程的 URL 从 HTTPS 更改为 SSH。

$ git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

再次测试它

$ git remote -v
# Verify new remote URL
> origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
> origin  git@github.com:USERNAME/REPOSITORY.git (push)

就这样。它现在可以工作了。


如果您将远程 repo url 从 https 更改为 ssh,则此答案有效。谢谢。
p
possumkeys

使用 ssh-add 命令将您的公钥添加到 ssh-agent。

ssh-add

确保 ssh 公钥,例如 ~/.ssh/id_rsa.pub 是您在 repo 设置中的内容。

确保您实际上可以通过 ssh 进入服务器,例如对于 Bitbucket:

ssh -T git@bitbucket.org

更新 url 以从 https 移动到 ssh。您可以通过检查以下输出来检查您使用的内容:

git remote -v

如果您在 url 中看到 https://,那么您仍在使用 https。要更新它:获取 url 并将 https:// 替换为 ssh:// 例如更改:

https://git@bitbucket.org/../..

至:

ssh://git@bitbucket.org/../..

参考:https://docs.github.com/en/github/using-git/changing-a-remotes-url#switching-remote-urls-from-https-to-ssh


Д
ДМИТРИЙ МАЛИКОВ
B
Brad

这对我有用:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

谢谢,没想到这一点,我使用带有配置的 windows ssh 通过 ssh 访问我的服务器,它可以无缝地使用密钥和存储密码,从没想过我也可以为 git 做到这一点。谢谢!
z
zedd45

对于 Mac OSX Sierra,我发现 Open Radar 的 github 问题中建议的修复解决了我的问题。似乎 Sierra 改变了默认行为(升级后我开始遇到这个问题)。

我发现这个特别有用:https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

这导致我的身份在我运行后被添加到代理中

ssh-add -K {/path/to/key}

总而言之,在 OSX.12 中:

ssh-add -K {/path/to/key}
ssh-add -A 

应该导致:

Identity added: {/path/to/file} ({/path/to/file})

编辑:我注意到下次我完全重新启动(也就是代理停止并重新启动)时,这不再起作用。更完整的解决方案是上面提到的@ChrisJF:创建一个 ~/.ssh/config 文件。这是我的输出:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

您可以根据需要添加任意数量的 IdentityFile 条目,但这是默认设置。这也是上面 openradar 链接 ATM 上的“趋势”答案。


编辑后的解决了我的问题。 MacOS 莫哈韦 10.14.3
D
DhineshYes

在 LinuxMint/Ubuntu 中工作

执行以下步骤

步骤1:

转到文件 => /.ssh/config

将以下行保存到文件中

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

不要忘记添加这一行 AddKeysToAgent 是

第2步:

打开终端并将密钥集添加到 ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

提供密码。


a
aboutaaron

我最近升级到 macOS Mojave,并通过自制软件安装了一些工具,这似乎将 Apple 的 ssh-add 版本换成了不同的版本。我的默认版本的 ssh-add 没有-K 选项。这导致了以下错误:

# ssh-add: illegal option -- K

您可以通过运行 which ssh-add 查看您拥有的 ssh-add 版本。

(我的存储在 /usr/local/bin/ssh-add 中)

为了解决这个问题,我不得不指出苹果版本的关键:

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git/GitHub 之后完美运行。有关详细信息,请参阅:Error: ssh-add: illegal option -- K


在装有 High Sierra 10.13.6 的 iMac 上遇到了同样的问题 - 这对我有用。谢谢!
我的工作正常并且随机开始再次询问密码 - 可能是在最近的更新之后。这解决了它!谢谢
c
chaosifier

此答案主要针对 Windows 用户,如果您在任何其他操作系统上使用 tfs、github 或 gitlab 克隆时遇到问题,也同样相关。

使用 SSH 时的默认身份验证模式是私钥。每当由于某种原因失败时,ssh-agent 就会退回到基于用户名和密码的身份验证。

基于默认密钥的身份验证可能失败的原因有多种。以下是最常见的情况:

a) ssh-agent 找不到默认的私钥文件 id_rsa,并且没有明确指定其他密钥路径。

b) 存储在服务器中的公钥不正确。

c) 您尝试克隆的路径不正确。

无论如何,要解决问题,首先使用以下命令执行带有详细日志记录的 git clone 命令:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

您可以通过日志中的每个步骤来直观地了解问题可能是什么。

(a) 情况下的故障排除

确保您在 .ssh 目录中有默认密钥名称 id_rsa。您可能在使用 ssh-keygen 命令生成密钥时指定了一些不同的密钥名,或者可能根本没有任何密钥)。

如果您想为身份验证指定不同的密钥,请使用以下命令: ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'

(b) 情况下的故障排除

确保在服务器中存储公钥时没有多余的空格。

(c) 情况下的故障排除

确保您没有尝试使用存储库路径的 https 版本进行克隆。


...“确保您没有尝试使用存储库路径的 https 版本进行克隆”...哦...谢谢!
J
James Bond

如果您之前为您的 GIT 使用密码认证,但现在使用 SSH 认证,您需要switch remote URLs from HTTPS to SSH

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

A
André Herculano

我已经设置了密码,但由于某种原因它不再识别它了。所以我只是使用 ssh-add -K 再次将身份文件添加到我的钥匙串中,它不再询问我的密码。


这只会加载密钥而不是证书
y
yebowhatsay

添加到上述答案。必须在 Windows 上再做一步才能使 git 能够使用 ssh-agent。

必须在 powershell 中运行以下命令来更新环境变量:

PS> [Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)

重新启动 VSCode、Powershell 或您用来激活 env 变量的任何终端。

完整的说明可在 [此处] (https://snowdrift.tech/cli/ssh/git/tutorials/2019/01/31/using-ssh-agent-git-windows.html) 中找到。


B
Bryan Perez

问题似乎是因为您是从 HTTPS 而不是 SSH 克隆的。我在这里尝试了所有其他解决方案,但仍然遇到问题。这为我做到了。

像这样使用 osxkeychain helper

看看你是否安装了它。 git credential-osxkeychain 如果未安装,系统会提示您将其作为 Xcode 命令行工具的一部分下载。如果已安装,请使用全局 credential.helper 配置告诉 Git 使用 osxkeychain 助手: git config --global credential.helper osxkeychain

下次克隆 HTTPS url 时,系统会提示您输入用户名/密码,并授予对 OSX 钥匙串的访问权限。第一次执行此操作后,它应该保存在您的钥匙串中,您无需再次输入。


A
Anang Satria

通常,以下是允许您使用 ssh 无密码远程连接到服务器的步骤:

创建一对 rsa 私钥和公钥 $ ssh-keygen -t rsa -b 4096 -C "your comments"

复制您的公钥并登录到您的远程服务器

将您的公钥添加到 .ssh/authorized_keys

如果您的计算机中有多个 ssh 密钥,您可以使用 ssh-add $ ssh-add /path/to/private/key 添加密钥

然后尝试 ssh 到您的服务器 $ ssh username@your_ip_address

来源:http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html


P
PavDub

SSH Key - Still asking for password and passphrase

如果在 Windows 上并使用 PuTTY 作为 SSH 密钥生成器,此快速 &使用简单的 Windows 命令行,简单的解决方案对我来说是唯一可行的解决方案:

您的 PuTTY 安装应该附带几个可执行文件,其中包括 pageant.exe 和 plink.exe 当使用 PuttyGen 生成 SSH 密钥时,密钥以 .ppk 扩展名存储 运行 "full\path\to\your\pageant.exe" “full\path\to\your\key.ppk”(必须引用)。这将执行选美服务并注册您的密钥(输入密码后)。设置环境变量 GIT_SSH=full\path\to\plink.exe (不得引用)。这会将与 git ssh-communication 相关的命令重定向到 plink,plink 将使用 pageantservice 进行身份验证,而无需再次询问密码。

完毕!

注意 1: This documentation 在使用 GIT_SHH 环境变量设置时会发出一些特殊警告。我可以在命令中使用任意数量的附加参数 pushpullfetch,一切对我来说都很好(无需按照其中的建议编写额外的脚本)。

注意2: PuTTY 的安装路径通常在 PATH 中,因此可以省略。无论如何,我更喜欢指定完整路径。

自动化:

在从命令行使用 git 之前,可以运行以下批处理文件。它说明了设置的用法:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

无论如何,我在 SystemPropertiesAdvanced.exe > Environment variables 中设置了 GIT_SSH 变量,并将 pageant.exe 添加为 Run 注册表项 (*)。

(*) 添加 Run 注册表项的步骤>

运行 regedit.exe 导航到 HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run Do (menu) Edit > New > String Value 输入任意(但唯一的)名称 Do (menu) Edit > Modify...(或双击) 输入 pageant.exe 和公钥的引号括起来的路径,例如 "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(注意 %ProgramFiles % 等变量在此处不起作用,除非在步骤 3 中选择可扩展字符串值代替字符串值。)。


V
Vinayak Deshpande

如果您为 git 使用 ssh url,当提示输入 ssh 密码时,请将用户名设置为“git”,密码作为系统的登录密码


将存储库远程 URL 类型从 HTTPS 更改为 SSH 解决了我的问题。谢谢@MichaelR,你的文章真的很有帮助,虽然我还没有读到任何东西:D
L
Lost Koder

使用 Github 提供的 ssh 远程 URL 而不是 https


OP 明确表示他使用的是 SSH 而不是 HTTPS。
L
Lerner Zhang

我想为那些可能仍需要输入密码的人添加一个答案,因为他们已将 IdentitiesOnly 设置为是。这可能是由多个密钥和身份文件引起的,它们是 git 或服务器的密钥。

在我生成密钥并将其复制到服务器后:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub lerner@192.168.20.160

我发现它不起作用。

然后我去检查 ~/.ssh/config 文件,我在底部看到了这个:

Host *
IdentitiesOnly yes

然后我在上面添加:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

我只需输入 ssh 12gpu 即可登录。

然后你就可以用你喜欢的名字添加多个 ssh 密钥了,你只需要像上面四行这样的设置添加到 config 文件中。

Host 是您稍后连接到服务器时要输入的名称; HostName 是服务器的 ip 或域,如 github.com; user 是你登录服务器的用户名,如 github 或 gitlab 的用户名或 git; IdentityFile 是您存储生成的密钥的文件。


F
Fabian Stern

如果您在没有第三方工具的情况下使用 Windows 和 GIT,并且您的密钥不受密码/密码短语的保护,请使用以下命令:

环境变量 HOME 必须设置为您的用户配置文件(例如 C:\Users\Laptop) 转到 C:\Users\Laptop\.ssh\ 文件夹并编辑“config”文件(或创建文件!)示例:C:\ Users\Laptop.ssh\config (注意:最后没有 . !)将您的 git-server 主机添加到“config”文件中,如下所示: #Example host entry Host myhostname.com HostName myhostname.com User git IdentityFile c :/users/laptop/.ssh/id_rsa.pub PasswordAuthentication no Port 422 保存文件并克隆存储库,如下所示: git clone ssh://myhostname.com/git-server/repos/picalc.git

您可以为“config”文件主机条目使用其他配置参数。这些可以在您的本地 git 安装文件夹中找到,例如“C:\Program Files\Git\etc\ssh\ssh_config”。摘抄:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

B
Bruno Leite

对我来说同样的问题,解决方案是:

请参阅此 github 文档以将远程 URL 从 https 转换为 ssh。要检查远程的 URL 是 ssh 还是 https,请使用 git remote -v。从 https 切换到 ssh: git remote set-url origin git@github.com:USERNAME/REPOSITORY.git @jeeYem


A
Amir Heshmati

Mobaxterme 有一个 UI 界面

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]