如何通过脚本通过SSH KEY +密码和不同端口连接到Git远程服务器

问题描述

我有一个Web服务器正在监听端口1234上的SSH 。 Web服务器使用~/.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"

从脚本我想将远程服务器设置为Web服务器并推送到该服务器。 这是我卡住的地方

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

这会产生错误

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

我认为我仍然需要添加密码,但是不知道如何。而且,无论我是否接近解决方案,错误仍然会打开,因为它说确保存储库存在。预先感谢

解决方法

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

ssh-add /path/to/your/key

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

本文对代理是什么及其作用做了很好的解释,以及使用代理的一些注意事项。

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