gpt4 book ai didi

使用 GIT_SSH 时 git ls-remote 挂起

转载 作者:太空狗 更新时间:2023-10-29 14:19:04 25 4
gpt4 key购买 nike

最近,在部署到我的一台 EC2 服务器时,我开始看到很多超时。经过一些调查后,我将问题缩小到 git ls-remoteGIT_SSH 脚本。

这 100% 的时间都有效:

eval `ssh-agent -s` && ssh-add key.pem && git ls-remote -h git@github.com:repo

90% 的时间挂起:

GIT_SSH=wrapper.sh git ls-remote -h git@github.com:repo

这只发生在一些服务器上。我在许多项目中使用了相同的包装器,并且从未遇到过问题。我只是使用使用不同包装器的 forward_agent 设置 Capistrano,但它也失败了。

有什么建议吗?

附注为了完整起见,包装器:

#!/usr/bin/env bash
/usr/bin/env ssh -o "StrictHostKeyChecking=no" -i "/path/to/key.pem" $1 $2

p.p.s. git 的原始版本是 1.9.1。更新到 2.1.1 没有帮助。

--编辑--

将 -v 添加到包装器脚本让我找到了罪魁祸首:

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY

似乎是一个错误:https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085

使用 -c 3des-cbc 指定密码似乎解决了自定义包装器的问题,但它没有解决我的 Capistrano 问题。

最佳答案

回答我自己的问题。

要修复单个命令或脚本,请指定 SSH 使用的密码:

ssh -c 3des-cbc ...

要永久修复 ssh,请通过编辑 /etc/ssh/ssh_config 指定您要使用的密码。取消注释:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

并添加:

HostKeyAlgorithms ssh-rsa,ssh-dss

根据 https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085 也可能通过更改 MTU 来修复但我更喜欢编辑 ssh 配置。

------编辑------

虽然我最初通过更改密码来修复它,但事实证明底层问题是 MTU。即使上述解决方案修复了 SSH 的问题,许多 SSL 连接也受其影响。下面我提出了一个一劳永逸解决所有问题的解决方案。

将 MTU 设置为较低的值。以太网的默认值为 1500,但我一直遇到问题,直到我将它降低到 1468

sudo ip link set dev eth0 mtu 1468

如果以上解决了问题,请将以下两行添加到 /etc/dhcp/dhclient.conf 以确保重启不会重置设置:

default interface-mtu 1468;
supercede interface-mtu 1468;

关于使用 GIT_SSH 时 git ls-remote 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com