【问题标题】:How to Connect to a Git Remote Server with SSH KEY + Passphrase and Different Port Via Script如何使用 SSH KEY + 密码和不同的端口通过脚本连接到 Git 远程服务器
【发布时间】:2020-12-11 08:39:51
【问题描述】:

我有一个网络服务器在端口 1234 上监听 SSH 。 网络服务器使用~/.ssh/authorized-keys 中的公钥进行授权。 要通过 SSH 连接,我有一个带密码的 SSH 私钥在我的本地机器上

现在我希望这个服务器成为一个 git 远程服务器,所以在服务器上,我在我的主目录中创建了一个带有 nonRootUser 的裸仓库。

mkdir ~/project.git
cd ~/project.git
git init --bare

现在在我的本地机器上创建一个新的仓库

mkdir myProject
cd myProject
git init
git add .
git commit -m "Initial commit"

FROM A SCRIPT 我想将远程设置为 Web 服务器并推送到它。 这就是我卡住的地方

git remote add origin ssh://nonRootUser@WebserverDomain.com:1234/home/project.git
git push origin master

这会产生 错误

主机密钥验证失败。 致命:无法从远程存储库中读取。 请确保您拥有正确的访问权限 并且存储库存在。

我想我仍然需要添加密码,但不知道如何。如果我接近解决方案,错误仍然会打开,因为它说确保存储库存在。提前致谢

【问题讨论】:

  • 您是否尝试过从命令行运行一次ssh WebserverDomain.com
  • 我可以使用 ssh -p 1234 nonRootUser@WebserverDomain.com -i /path/to/private/key 成功 ssh 到我的 Werbserver 并输入请求的密码

标签: git ssh remote-server ssh-keys git-remote


【解决方案1】:

启动 SSH 代理,或使用以下命令将密钥添加到现有代理:

ssh-add /path/to/your/key

系统会提示您输入密钥的密码,并在 SSH 身份验证期间自动提供该密码。

这篇文章很好地解释了代理是什么以及它的作用,以及使用代理的一些注意事项。

https://smallstep.com/blog/ssh-agent-explained/

【讨论】:

  • 谢谢,听起来不错。有没有办法从脚本输入密码而不是手动输入 ist ?
  • "从脚本中输入密码:这没有意义。密码是你的秘密代码。如果你要在脚本中输入密码——你根本不需要密码。
  • 我在考虑 github 操作,在那里你可以使用“秘密”(我知道它们不是 100% 安全的)我不想将我的密码保留为 github“秘密”并将其用于连接到网络服务器的 github 操作,但是当 ssh-add 想要提示密码时出现问题
猜你喜欢
  • 2021-07-08
  • 2019-01-13
  • 2022-07-11
  • 2021-12-29
  • 2011-04-16
  • 1970-01-01
  • 2012-09-02
  • 2023-03-08
  • 2012-11-26
相关资源
最近更新 更多