---
title: "SSH et git push expirent sur Mac : causes et solutions · Guides Kilobat"
url: "https://kilobat.app/fr/guides/ssh-git-timeouts.html"
description: "Réparez les connexions SSH et Git qui se bloquent ou expirent : testez le port 22, utilisez SSH sur le port 443 pour GitHub, réglez les keepalives et vérifiez IPv6 et les proxys."
---

Développeurs

# SSH et Git expirent sur un Mac

SSH et Git ont besoin d’une connexion TCP fonctionnelle vers le serveur. Un réseau qui bloque le port 22, un chemin IPv6 défaillant ou un proxy peut les en empêcher.

S’applique à : toutes les versions actuelles de macOS, avec l’OpenSSH et le Git installés par macOS ou Homebrew. · Vérifié le 29 octobre 2026

## Symptômes

- `git push` ou `git clone` reste en attente, puis affiche « Operation timed out ».
- `ssh` affiche « Connection timed out » sur un réseau, mais fonctionne sur un autre.
- Une session SSH se fige après quelques minutes d’inactivité.
- Les dépôts distants Git en HTTPS fonctionnent, mais pas ceux en SSH.

## Causes probables

- **Le port 22 est bloqué.** Certains réseaux d’entreprise, d’hôtel et publics bloquent SSH. GitHub indique que les coupe-feu refusent parfois les connexions SSH.
- **Un chemin IPv6 défaillant.** Le Mac essaie d’abord IPv6. Si IPv6 ne fonctionne pas, la connexion reste en attente.
- **Les connexions inactives se ferment.** Un routeur ou un coupe-feu peut couper une connexion qui n’envoie aucune donnée pendant un certain temps.
- **Un proxy est nécessaire.** Git en HTTPS sur un réseau d’entreprise peut nécessiter `http.proxy` ou des variables de proxy.

## Comment vérifier

1. Connectez-vous avec une sortie détaillée. Les dernières lignes montrent où la connexion s’arrête.

   ```
   ssh -vT git@github.com
   ```
2. Testez le port TCP seul, avec un délai d’expiration de 5 secondes.

   ```
   nc -vz -G 5 github.com 22
   ```
3. Essayez en IPv4 uniquement. Si cela fonctionne, le problème vient du chemin IPv6.

   ```
   ssh -4 -T git@github.com
   ```
4. Testez le service SSH de GitHub sur le port 443.

   ```
   ssh -T -p 443 git@ssh.github.com
   ```
5. Affichez le réglage de proxy de Git et vos variables de proxy.

   ```
   git config --get http.proxy
   env | grep -i proxy
   ```

## Comment corriger

1. Si le port 22 est bloqué, utilisez SSH sur le port 443 pour GitHub. Ajoutez ce bloc à `~/.ssh/config`.

   ```
   Host github.com
       Hostname ssh.github.com
       Port 443
       User git
   ```
2. Si IPv6 échoue, utilisez IPv4 pour cet hôte. Ajoutez `AddressFamily inet` à son bloc dans `~/.ssh/config`.
3. Pour garder ouvertes les sessions inactives, envoyez un message toutes les 60 secondes. Ajoutez `ServerAliveInterval 60` au bloc de l’hôte.
4. Pour éviter les longues attentes, ajoutez `ConnectTimeout 10` au bloc de l’hôte.
5. Pour les dépôts distants HTTPS derrière un proxy, configurez le proxy de Git.

   ```
   git config --global http.proxy http://proxy.example.com:8080
   ```
6. Pour tester, utilisez l’URL HTTPS du dépôt au lieu de l’URL SSH.

## Avec Kilobat

1. La vérification de la connexion de Kilobat teste IPv4 et IPv6 séparément : un chemin IPv6 défaillant obtient ainsi une réponse claire.

   ```
   kilobat why github.com
   ```
2. Affichez les connexions ouvertes d’un processus.

   ```
   kilobat destinations --pid 12345
   ```

## Questions

**Pourquoi ssh -4 fonctionne-t-il alors que ssh seul échoue ?**

Le Mac a d’abord essayé IPv6, et le chemin IPv6 ne fonctionnait pas. Avec `-4`, ssh utilise uniquement IPv4.

**À quoi sert ServerAliveInterval ?**

ssh envoie un message dans la connexion après ce nombre de secondes sans données. La valeur par défaut est 0, qui n’en envoie aucun.

## Sources

- [GitHub Docs : Utiliser SSH sur le port HTTPS](https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port)
- ssh(1) et ssh_config(5), pages man installées avec macOS 27.2
- nc(1), page man installée avec macOS 27.2
- git-config(1), http.proxy, page man installée avec macOS 27.2 (Git 2.56)

Sources vérifiées le 29 octobre 2026. Les pages man sont celles installées avec macOS ; ouvrez-en une avec `man <name>` dans Terminal.

## Guides associés

- [Problèmes IPv6 sur un Mac](https://kilobat.app/fr/guides/ipv6-problems-mac.html): La plupart des réseaux attribuent au Mac une adresse IPv4 et une adresse IPv6.
- [Les certificats de proxy d’entreprise bloquent les outils de Terminal sur un Mac](https://kilobat.app/fr/guides/corporate-proxy-certificates.html): Certains réseaux d’entreprise inspectent le trafic HTTPS.
- [Les téléchargements Homebrew ou npm échouent sur un Mac](https://kilobat.app/fr/guides/homebrew-npm-download-fails.html): Homebrew télécharge avec curl et Git.
- [Trouver pourquoi un site ou une API ne se connecte pas](https://kilobat.app/fr/guides/recipes/why-cant-it-connect.html): Quand Internet fonctionne mais qu’une adresse échoue, Kilobat vérifie chaque couche tour à tour.
- [ssh: connect to host port 22: Operation timed out sur Mac](https://kilobat.app/fr/guides/ssh-port-22-operation-timed-out.html): ssh a envoyé une demande de connexion au port 22 et n’a reçu aucune réponse.
