Git:在没有SSH密钥的情况下暂时记住SSH用户和密码

时间:2019-02-13 12:05:59

标签: git unix ssh

在使用更多git命令时,有什么方法可以临时存储我的SSH登录数据(=用户名和密码)?例如,“ git submodule update ...”要求输入两次密码,因此当我多次调用此命令时,这太可怕了。

当我们在客户服务器上安装软件时,我们具有可自动执行所有操作(从git存储库中拉出,更新子模块,配置等)的脚本,因此登录数据必须仅在安装过程中存储。

生成和存储SSH密钥不是解决我的问题的方法,必须使用用户名+密码,并且不能将其保存在服务器上(只能暂时保存在内存中)。可以存储git存储库URL,但是不能存储ssh:// username @ server!

1 个答案:

答案 0 :(得分:0)

SSH密钥既不是用户也不是密码,因此此问题没有道理。 SSH密钥由您生成的一对数据文件组成(尽管确切的命令无关紧要,但是通常使用ssh-keygen-重要的是一对文件中的数据)。

该对本身包括:

  • 一个公钥,您可以将其交给其他实体(其他计算机,其他组织,个人),无论您喜欢哪个,而不必担心它们会继续传递下去;和
  • 私有密钥。

您不必担心公用密钥是bruited-about的原因是公用密钥根本不是真正的密钥,而不是打开门的物理密钥。相反,它更像 key-hole 可以在其中插入您的实际密钥-您的私钥。如果您将公用密钥提供给Joe,而Joe将公用密钥提供给Katie,则意味着您现在可以走进Joe和Katie的家了,但是 Joe nor Katie可以走进你的或者,像chepner put it一样,密钥是不对称的。

换句话说, private 键是您应注意的键。这是实际的关键。 public 键是访问权限。如果您打算让客户从他们的末端登录到您的站点,则可以让客户生成密钥对。然后,将(至少简短地)在您的站点上安装公钥。从那时起,客户可以访问您的系统。一旦您怀疑客户滥用了他们的(私钥)或不再希望他们访问您的系统,您就会从系统中删除公钥。他们的私钥继续“打开”由该公钥标识的锁,但是由于该锁不是您的门上的锁之一,因此不再重要。