git - ssh:连接到主机 xxx.yzaaa 端口 22:连接被拒绝
问题描述
我对 git 很陌生。尝试在我的 Linux 服务器中设置我自己的裸 git 远程存储库并从我的本地存储库推送文件。我浏览了一些手册并设置了远程和本地存储库。
当我从本地存储库推送时,连接被拒绝。我已经在服务器中创建了一个 SSH 密钥,并且可以使用不同的端口 (34891) 从本地终端通过 Putty 进行连接。
需要一些帮助如何将本地存储库推送到远程存储库。
以下来自我的服务器。远程存储库看起来不错
[myname@octopus gitrepo.git]$ pwd
/media2/myname/gitrepo.git
[myname@octopus gitrepo.git]$ ls -l
total 28
-rw-rw-r-- 1 myname myname 23 Oct 17 23:45 HEAD
-rw-rw-r-- 1 myname myname 84 Oct 17 23:45 config
-rw-rw-r-- 1 myname myname 73 Oct 17 23:45 description
drwxrwxr-x 2 myname myname 4096 Oct 17 23:45 hooks
drwxrwxr-x 2 myname myname 4096 Oct 17 23:45 info
drwxrwxr-x 4 myname myname 4096 Oct 17 23:45 objects
drwxrwxr-x 4 myname myname 4096 Oct 17 23:45 refs
[myname@octopus gitrepo.git]$
以下是我的本地存储库中使用的命令
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ ls
new.txt
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ git remote add origin myname@xxx.y.z.aaa:/media2/myname/gitrepo.git
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ git remote -v
origin myname@xxx.y.z.aaa:/media2/myname/gitrepo.git (fetch)
origin myname@xxx.y.z.aaa:/media2/myname/gitrepo.git (push)
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ git push -u origin master
ssh: connect to host xxx.y.z.aaa port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我也尝试如下添加端口号,但仍然是同样的错误
git remote add origin myname@xxx.y.z.aaa:34891/media2/myname/gitrepo.git
在 ssh_config 我添加了 IP 地址和端口号,如下所示
Host xxx.y.z.aaa
Port 34891
当我尝试连接时,它要求输入密码。但是说许可被拒绝。
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ ssh -T -p 34891 myname@xxx.y.z.aaa
myname@xxx.y.z.aaa's password:
Permission denied, please try again.
我错过了什么吗?我应该把私钥放在哪里吗?还是我应该在 ssh 配置中进行任何配置?
解决方案
进行以下更改后问题已解决。
编辑 C:\Program Files\Git\etc\ssh 下的 ssh_config 文件并添加以下行
Host xxx.y.z.aaa
Port 34891
IdentityFile E:\sshkeys\ssh_myname
identifyFile 是从我的服务器下载的 id_rsa 文件的路径。
一旦进行了这些更改,它就开始工作了
Malai@MALAI MINGW64 /e/gitrepo/test (master)
$ git push -u origin master
Enter passphrase for key 'E:\sshkeys\ssh_myname':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 211 bytes | 70.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To xxx.y.z.aaa:/media2/myname/gitrepo.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
推荐阅读
- python-3.x - PySimpleGui:如何在文本框中输入文本?
- authentication - 我使用哪个 Google OAuth2.0 令牌来唯一标识用户并让他们登录
- r - R studio:仅使用特定变量,但能够继续工作而不会丢失其他变量信息
- javascript - VueJS根据for循环中的变量加载SVG文件,使用v-html给出[object Module]
- php - 在准备好的语句下从 MySQLi 检索数据
- javascript - 使用 javascipt 获取根目录中的文件名列表
- ffmpeg - ffmpeg - 创建带有多声道音频的空白视频文件?
- python - 从值不同的两个数据框中获取列
- arrays - 尝试将来自 API 的 JSON 数据显示为数组
- c# - 如何在 C# 中使用表单数据构造 HttpClient POST 请求?