ssh_exchange_identification:连接由Git bash下的远程主机关闭

时间:2012-04-12 16:32:54

标签: git ssh

我在win7工作并使用sshd设置git服务器。 我git --bare init myapp.git,正确克隆 Cywgin 中的ssh://git@localhost/home/git/myapp.git。但是我需要再次使用 Cygwin 的配置git,我想在 Git Bash 中进行git克隆。我运行git clone ssh://git@localhost/home/git/myapp.git并获得以下消息

ssh_exchange_identification: Connection closed by remote host

然后我在 Git Bash 中运行ssh -vvv git@localhost并获取消息

debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /c/Users/MoreFreeze/.ssh/identity type -1
debug3: Not a RSA1 key file /c/Users/MoreFreeze/.ssh/id_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace 
// above it repeats 24 times
debug2: key_type_from_name: unknown key type '-----END'
debug3: key_read: missing keytype
debug1: identity file /c/Users/MoreFreeze/.ssh/id_rsa type 1
debug1: identity file /c/Users/MoreFreeze/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host

好像我的私钥格式错了?我发现没有BEGINEND的私钥中只有25行。 我很困惑为什么它说NOT RSA1键,我完全确保它是RSA 2键。

欢迎任何建议。 顺便说一句,我已经在谷歌上阅读了关于这个问题的前3页。

27 个答案:

答案 0 :(得分:51)

我今天遇到了这个问题,我意识到我已连接到2个不同的网络(LAN和WLAN),我解决了它只是断开了以太网适配器的电缆。我想问题是由于ssh密钥与我的无线适配器的MAC地址绑定而引起的。我希望这会对你有所帮助。

答案 1 :(得分:21)

我今天遇到了这个问题,那是因为我尝试连接的服务器因处理而过载。因此,服务器可能内存不足或CPU缺乏。

答案 2 :(得分:13)

只需在服务器端输入:

echo 'SSHD: ALL' >> /etc/hosts.allow

它为我解决了。

答案 3 :(得分:12)

linux

中点击以下ssh restart命令
prayag@prayag:~/backup/NoisyNeighbour$ service ssh restart 
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.75" (uid=1417676764 pid=5933 comm="stop ssh ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.76" (uid=1417676764 pid=5930 comm="start ssh ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

答案 4 :(得分:7)

确保您没有连接到任何类型的VPN。

答案 5 :(得分:5)

收到相同的错误消息。关闭WiFi并重新打开它再次为我工作。

答案 6 :(得分:3)

如果主机名不起作用,请尝试IP地址。

现在正在进行,所以我不得不说。我尝试用我的主机名ssh,但它不起作用

ssh root@host.example.net

这给出了错误“ssh_exchange_identification:Connection由远程主机关闭”

这个USED工作了一个小时。

但是,这是有趣的部分,IP地址有效!

ssh root@192.168.0.100

(当然实际IP地址不同)

去图!

答案 7 :(得分:3)

要解决此问题,请在Host github.com Hostname ssh.github.com Port 443 上添加Git的主机名,

plt.show()

就我而言,是github!

答案 8 :(得分:3)

删除/删除rm ~/.ssh/known_hosts后,我的问题已解决

答案 9 :(得分:1)

就我而言,我今天遇到了同样的问题,因为 Gitlab 服务器处于维护状态 Please Check once 正在运行

答案 10 :(得分:1)

删除~/.ssh/config或其他ssh配置位置中的所有配置,这些配置将使其无法访问Github服务器

就我而言,它低于配置,并且我没有连接到VPN。

Host *
  ProxyJump 10.0.0.50 

注意:- 如果我已连接到VPN,则此配置表示git clone或任何git操作都将通过VPN发送,这可能会很慢,具体取决于我们使用的VPN类型。

答案 11 :(得分:1)

要解决此编辑/ etc / ssh / ssh_config并注释以下行 1

ProxyCommand / usr / bin / sss_ssh_knownhostsproxy -p%p%h

https://www.evilbox.ro/linux/solve-ssh_exchange_identification-connection-closed-by-remote-host/供参考

答案 12 :(得分:1)

与Arun Sangal相似,问题出在.ssh / config条目中

Host my.sshhost.com
  ProxyCommand ssh -q -W %h:%p myremotemachine.my.company.com

添加了远程计算机以避免使用ssh进行VPN连接,并且运行良好。但是在休假期间,我关闭了myremotemachine,遇到了上述问题。

答案 13 :(得分:1)

我们今天早上将我们的git主机实例/服务器迁移到一个新的数据中心,同时连接到两个:VPN(来自远程/家庭)或办公室网络时,我遇到了同样的错误,无法连接到克隆任何GIT回购。

Cloning into 'some_repo_in_git_dev'...
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.

如果您通过跳转主机服务器连接到某些或所有服务器,这将有所帮助。

我的〜/ .ssh / config文件早些时候,我的连接设置是:

Host * !ssh.somejumphost.my.company.com
     ProxyCommand ssh -q -W %h:%p ssh.somejumphost.my.company.com

这意味着,对于任何基于SSH的连接,它将通过给定的跳转主机服务器连接到任何 * 服务器,除非/忽略“ssh.somejumphost。 my.company.com“服务器(因为我们不希望通过跳转主机服务器连接到跳转主机。

为了解决这个问题,我所做的只是改变配置以忽略git服务器:

Host * !ssh.somejumphost.my.company.com !mycompany-git.server.com !OrMyCompany-some-other-git-instance.server.com
     ProxyCommand ssh -q -W %h:%p ssh.somejumphost.my.company.com

所以,现在要在执行git clone(git SSH url)时连接到mycompany-git.server.com,我告诉SSH不要为这两个额外的git实例/服务器使用跳转主机。

答案 14 :(得分:1)

我在更改ssh端口后解决了这个问题。 / etc / ssh / sshd_config中的MaxStartups变量为,

port 2244
MaxStartups 100

然后,重启服务

service sshd restart

如果仍然不起作用,请重启系统。

答案 15 :(得分:1)

您好我在一个vps服务上修复此问题,重新启动它,其他方式是如果您有一个来自您的服务的控制台o在您的远程计算机上运行命令的任何其他方式您必须运行的唯一命令是重新启动ssh守护程序并且请享用!! :P

/etc/init.d/ssh restart

答案 16 :(得分:0)

简单的服务器重新启动为我解决了这个问题。如果硬重启后不起作用,请尝试硬重启。

答案 17 :(得分:0)

对我而言,这是由并发ssh会话数量的限制引起的。我将下面的两个参数添加到/ etc / ssh / sshd_config然后就可以了。

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
defaultConfig {
    applicationId "com.kevinladelfa.duevent"
    minSdkVersion 22
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:3.0.1'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
compile 'com.google.firebase:firebase-database:11.4.2'
compile 'com.google.firebase:firebase-core:11.4.2'
compile 'com.google.firebase:firebase-storage:11.4.2'
compile 'com.google.firebase:firebase-firestore:11.4.2'
}

答案 18 :(得分:0)

请使用端口7999,然后尝试。它会工作

答案 19 :(得分:0)

我这样解决了。

ssh -vvv <username>@github.com以查看github IP。

然后打开浏览器,并通过IP打开github,发现它与防火墙有关。

答案 20 :(得分:0)

我今天经历了这个,我只是做一个:

12345@123456 MINGW64 ~/development/workspace/test (develop)
$ git status
Refresh index: 100% (1204/1204), done.
On branch develop
Your branch is up to date with 'origin/develop'.

nothing to commit, working tree clean

12345@123456 MINGW64 ~/development/workspace/test (develop)
$ git fetch

然后又重新工作了。

答案 21 :(得分:0)

对我来说,问题在于/ etc / ssh / ssh_config中设置了一个代理服务器,但该代理服务器已关闭,因此通过将远程git IP列入白名单并删除了代理行来解决了该问题。

希望这对某人有帮助。

答案 22 :(得分:0)

在Windows计算机中,删除C:\ Users {yourusername} .ssh中存在的配置文件的内容

这对我来说很好。

答案 23 :(得分:0)

如果您使用的是VPN,请将其关闭,然后再次尝试推送。

答案 24 :(得分:0)

如果sshd服务无效,您可以获得“ssh_exchange_identification:远程主机关闭连接”。

如果您有权访问服务器,请检查运行sshd服务:

  ps aux | grep ssh

并检查它是否正在侦听端口22:

 netstat -plant | grep :22

more details here

答案 25 :(得分:0)

当我从一个工作场所移动到另一个工作区时,使用ssh连接到GitHub时也出现了同样的错误。根据我的情况,似乎不同网络的DNS服务器可能获得github的各种ip地址,并且known_hosts文件在发生更改时不识别它。因此,更改DNS或切换回原始网络可能会有效。

答案 26 :(得分:0)

断开并重新连接到当前网络对我来说很有效。