首页 > 解决方案 > 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 配置中进行任何配置?

标签: gitssh

解决方案


进行以下更改后问题已解决。

编辑 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'.

推荐阅读