ssh: connexion au port 22 de l'hôte github.com: connexion expirée

174

Je suis sous proxy et je m'installe avec succès depuis un certain temps.
Maintenant, je ne suis pas capable de pousser dans git tout d'un coup.
J'ai défini la clé RSA et le proxy et les ai vérifiés deux fois, sans succès et git me lance l'erreur indiquée dans le titre de la page.

Vihari Piratla
la source
6
Créez un hotspot sur votre appareil mobile, connectez-vous via votre appareil mobile, puis git push. A travaillé pour moi.
zundi
1
Le même problème m'est arrivé au Royaume-Uni avec Virgin Media. J'ai essayé de pousser / tirer vers GitHub via ssh à la maison et pas de chance, mais au travail, c'était bien. J'ai donc réalisé que j'avais des problèmes avec mon FAI. La solution simple pour moi était d'utiliser Cloudflare DNS 1.1.1.1au lieu d'un DNS par défaut, c'est pourquoi @zundi réussit via un hotspot mobile.
Vladyslav Krylasov

Réponses:

254

La raison pourrait être la modification du pare-feu car vous êtes sous un réseau. (Dans ce cas, ils peuvent délibérément bloquer certains ports)
Pour vérifier si c'est la raison ...

ssh -T [email protected]

cela devrait expirer. Si c'est le cas, utilisez le protocole http au lieu de ssh de cette façon,
changez simplement votre URL dans le fichier de configuration en http.
Voici comment :-

git config --local -e

modifier l'entrée de

 url = [email protected]:username/repo.git

à

url = https://github.com/username/repo.git
Vihari Piratla
la source
6
J'ai eu ce problème une fois, mais le redémarrage de mon ordinateur l'a résolu.
Kevin Lee
3
fatal: impossible d'accéder à ' gitlab.com : ******. git /': le numéro de port s'est terminé par 'f'
Fakher le
J'ai dû supprimer le .git de l'url pour que cela fonctionne pour moi. url = github.com/username/repo
Jesse Buss
4
utiliser https à la place pour ssh n'est pas la bonne solution. Il doit y avoir un moyen de définir le proxy dans git config et dans les paramètres ssh pour résoudre ce problème.
shijin
6
Virgin Media UK a un mode sans échec pour les enfants, que j'ai dû désactiver.
Finlay Percy
178

Pour mon cas, aucune des solutions suggérées n'a fonctionné, j'ai donc essayé de résoudre le problème moi-même et je l'ai résolu.

Pour moi, j'obtiens cette erreur sur mon instance AWS EC2 UBUNTU, ce que j'ai fait pour la résoudre était de modifier la configuration ssh (ou de l'ajouter si elle n'existe pas).

sudo nano ~/.ssh/config

Et j'ai ajouté ce qui suit

Host github.com
 Hostname ssh.github.com
 Port 443

Ensuite, exécutez la commande ssh -T [email protected]pour confirmer si le problème est résolu.

Selon cela

Parfois, les pare-feu refusent entièrement d'autoriser les connexions SSH. Si l'utilisation du clonage HTTPS avec la mise en cache des informations d'identification n'est pas une option, vous pouvez tenter de cloner à l'aide d'une connexion SSH établie via le port HTTPS. La plupart des règles de pare-feu devraient permettre cela, mais les serveurs proxy peuvent interférer

Espérons que cela aide toute autre personne qui a le même problème que moi.

Mahan_F
la source
3
Cette solution a bien fonctionné pour moi, même si elle n'a pas résolu le problème pour GitLab. Dans ce cas, veuillez considérer que GitLab.com exécute un deuxième serveur SSH qui écoute sur le port 443 couramment utilisé, qui est peu susceptible d'être protégé par un pare-feu. Tout ce que vous avez à faire est de modifier votre ~/.ssh/configet de changer la façon dont vous vous connectez à GitLab.com. Dans ce cas, consultez cet article: about.gitlab.com/2016/02/18/…
lucascavalcante
1
Salut, j'ai eu le même problème, mon routeur vient de NET et lui bloque le port 22. Cette configuration a définitivement résolu mon problème
Pedro Soares
Ce n'est pas gitconfig mais sshconfig
GuyT
1
Après des heures à trouver des réponses ... vous êtes CHAMP, pourquoi devons-nous changer github.com en ssh.github.com? Je ne comprends toujours pas
Robert Tirta
45

Réécriture d'URL de base

Git fournit un moyen de réécrire les URL à l'aide de git config. Exécutez simplement la commande suivante:

git config --global url."https://".insteadOf git://

Maintenant, comme par magie, toutes les commandes git effectueront une substitution de git://tohttps://

source: git: // protocole bloqué par l'entreprise, comment puis-je contourner cela?

Michaël P
la source
1
Merci! La nôtre était pendant la construction de Jenkins, donc je ne pouvais pas modifier manuellement le fichier git (je n'ai pas les informations d'identification git pour le compte jenkins) - donc c'était très utile.
Phil
1
C'est bien. J'ai ajouté des alias git pour que chacun puisse basculer facilement
lfender6445
17
En ce qui concerne github, la commande doit être: git config --global url."https://github.com/".insteadOf [email protected]:. Remarquez les différences: @devient //et :devient /.
Frodon
20

dans le dossier .ssh Créer un fichier "config"

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Isaque Elcio
la source
1
Voir la réponse Mahan_F pour une explication détaillée sur pourquoi cela se produit.
refaelio
1
C'est la seule chose qui a fonctionné pour moi sur GitLab. Merci, Isaque!
awwsmm
5

Solution rapide: essayez de passer à un autre réseau

J'ai rencontré ce problème sur un hotspot (connexion 3 / 4G). Le passage à une connexion différente (WiFi) l'a résolu, mais c'est juste une solution de contournement - je n'ai pas eu la chance d'aller au fond du problème, donc les autres réponses pourraient être plus intéressantes pour déterminer le problème sous-jacent

kip2
la source
Je suis passé du WiFi à la 4G et cela a fonctionné. Je ne comprends pas non plus.
Adam Casey
4

J'ai rencontré le même problème et je n'ai pas trouvé de solution fonctionnelle. J'ai rencontré ce problème lors de la configuration d'un serveur local et le git n'a pas pu se connecter via mon réseau proxy, mais mon poste de travail le pouvait. C'était la sortie quand j'ai exécuté la commande ssh -vT [email protected]

ubuntu@server:~$ ssh -vT [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [13.234.176.102] port 22.

J'ai donc essayé d'utiliser une connexion SSH établie sur le port HTTPS en éditant le fichier de configuration, ~/.ssh/configmais en vain.

Host github.com
 Hostname ssh.github.com
 Port 443

Enfin, j'ai trouvé cet article qui a résolu et exposé le vrai problème.

# github.com
Host github.com
    Hostname ssh.github.com
    ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
    Port 443
    ServerAliveInterval 20
    User git

Ceci est mon fichier de configuration et maintenant git fonctionne parfaitement bien via ssh!

Animesh Singh
la source
3

Exécuter:

nc -v -z <git-repository> <port>

Votre sortie devrait ressembler à:

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

Si vous obtenez:

connect to <git-repository> <port> (tcp) failed: Connection timed out

Vous devez éditer votre fichier ~ / .ssh / config. Ajoutez quelque chose comme ce qui suit:

Host example.com
Port 1234
Ameen
la source
5
Je ne suis pas sûr que tout le monde l'aura ncinstallé. Qu'est-ce que c'est censé être? Netcat ou quelque chose?
Hack-R
2

J'avais le même problème, mais la réponse que j'ai trouvée était différente, je pensais que quelqu'un pourrait rencontrer ce problème, alors voici ma solution.

Je devais 2 adresses IP pour la liste blanche ports 22, 80, 443et 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Si ces adresses IP ne fonctionnent pas, c'est peut-être parce qu'elles ont été mises à jour, vous pouvez trouver les plus récentes sur cette page .

Artur Grigio
la source
0

La réponse ci-dessus m'a donné les informations nécessaires pour résoudre ce problème. Dans mon cas, l'url ne commençait pas correctement par ssh: ///

Pour vérifier que l'url de votre git config est correcte, ouvrez le fichier git config: -

git config --local -e

Vérifiez l'entrée d'url. Il ne devrait PAS avoir ssh: /// au début.

Entrée incorrecte:

 url = ssh:///[email protected]:username/repo.git

Entrée correcte:

 url = [email protected]:username/repo.git

Si votre URL est correcte, alors la prochaine étape serait d'essayer la réponse ci-dessus qui suggère de changer le protocole en http.

Manda QoP
la source
0

Lorsque je suis accidentellement passé à un réseau wifi invité , j'ai cette erreur. J'ai dû revenir à mon réseau wifi par défaut .

Ludder
la source
0

J'ai eu ce problème pendant 2 heures et il s'avère que la suppression du "s" de https et qu'il suffit de faire:

git clone -b <branchName> http:<projecturl>

Corrigé.

aPurpleDev
la source
Veuillez fermer cette question en l'étiquetant comme répondu
Clément
0

PROBLÈME: Étape pour produire le problème: git clone [email protected]: sramachand71 / test.git pour la première fois dans le nouvel ordinateur portable ERREUR ssh: connexion à l'hôte github.com port 22: connexion expirée fatale: impossible de lire à distance dépôt.

Veuillez vous assurer que vous disposez des droits d'accès appropriés et que le référentiel existe. SOLUTION pour la première fois dans le système à cloner, nous devons donner des guillemets doubles pour la commande de clonage. $ git clone "[email protected]: sramachand71 / test.git" Je suis confronté à ce problème dans le système même après que tout était correct, mais j'ai enfin remarqué que les guillemets doubles sont indispensables pour l'url "repository_url.git" pour la première fois ou pour un nouvel utilisateur dans le système.

Shivaprasad R
la source
0

Changer l'URL du dépôt de ssh en https n'est pas très significatif pour moi. Comme je préfère sshà httpscause d'une sorte d'avantages supplémentaires que je ne veux pas abandonner. Les réponses ci-dessus sont plutôt bonnes et précises. Si vous rencontrez ce problème dans GitLab, veuillez vous rendre sur leur page de documentation officielle et modifier votre fichier de configuration comme ça.

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab
Md. Nowshad Hasan
la source
0

Le redémarrage de l'ordinateur l'a résolu pour moi.
Version Git: 2.27.0.windows.1
Version du système d'exploitation: Windows 10 v1909

Wenfang
la source