SSH自签名证书即使在keygen等之后访问Git远程也是错误的

时间:2017-01-23 15:49:52

标签: git bash ssh

我试图回到我的远程服务器,我的笔记本电脑被盗了。 显然,新机器没有相同的按键等。

我可以通过PuTTY登录我的LAMP服务器。 我在服务器上有一个裸git存储库,我从笔记本电脑上推送我的代码。我还将该裸仓库中的代码部署到实际工作目录(目前恰好在同一台机器上)。

我从远程仓库获取的初始尝试因通常的自签名证书错误而失败。

我迄今为止的研究结果是,我需要在服务器上为我的git用户设置ssh密钥,用于验证笔记本电脑的连接。

所以,按照我迄今为止所能找到的,我有:

a)使用ssh-keygen生成一个新的公钥,并将其添加到我的服务器git用户的authorized_keys文件中。

b)使用puttygen加载现有的(正确/工作)PuTTY密钥,并将其导出为ssh公钥,我也将其添加到我的服务器git用户的authorized_keys文件中。

我已经在我的主代码目录(我运行Git Bash的目录)的.ssh子目录中创建了两个密钥的副本,以及Program Files/Git中的.ssh子目录。

然而,当我尝试远程提取/拉/推等操作时,我仍然会收到相同的自签名证书错误。

1 个答案:

答案 0 :(得分:2)

如果您使用HTTPS进行克隆,那么Git将仅使用其信任库中的证书。也就是说,证书需要由git信任的证书颁发机构签名。

使用SSH是解决此问题的另一种选择 - 但如果您仍然遇到证书错误,那么您可能仍在尝试使用HTTPS URL进行克隆。如果您想使用SSH,那么您希望使用SSH样式的“URL”,例如Route::get('/m/snes', 'GameController@snes')->name('snes') Route::get('/m/{game}', 'CommentController@index')->name('game'); Route::get('/m/{game?}', 'GameController@all')->name('all');

因此,您可以使用SSH,也可以使用HTTPS修复信任问题。要解决信任问题,您可以执行以下三种操作之一。

  1. 从CA获取主机名证书。
  2. 将自签名证书添加到信任存储区。这对Git来说并不完全是直接的,你必须在连接到主机的每台机器上都这样做,但是it's possible
  3. 忽略HTTPS警告。您可以使用git clone username@hostname.com:repositoryname.git并将git config设置为false来执行此操作。这是最不理想的解决方案 - 您可能根本不使用HTTPS并使用普通HTTP。