web-dev-qa-db-fra.com

SSH cesse de fonctionner si la commande est locale (ouverture d'une session OS X)

Les commandes ssh exécutent uniquement celles du système local.

pour par exemple:

ssh [email protected] df -h

Cela a fonctionné, et après cela, le protocole ssh a été pendu. Il reste suspendu pendant environ 10 minutes, puis redevient normal. Le message d'erreur que je reçois est le suivant.

ssh: connect to Host mydomain.com port 22: Operation timed out

3
NarayaN

Le problème est que ssh-agent s'exécutant sur votre ordinateur local est suspendu et vous empêche de tenter d'établir une autre connexion. Je pense que ssh-agent devrait se fermer lorsque votre connexion SSH est terminée et que le processus se termine, mais pour une raison quelconque, l'implémentation d'OS X se bloque. Cette instance de ssh-agent n'est pas disponible pour d'autres instances de votre utilisateur, pour des raisons de sécurité.

La solution, qui à mon avis s’appliquerait si cela se produisait également dans Ubuntu, consiste simplement à supprimer le processus ssh-agent lorsque vous avez terminé votre session ssh, avant de commencer une autre.

Si ssh-agent accrocher pose problème, vous pouvez le terminer automatiquement après votre session avec:

~$ ssh username@hostname && kill $(pgrep ssh-agent)

[MODIFIER]

Cette commande est si le client à partir duquel vous vous connectez n'a qu'un seul utilisateur utilisant ssh, si vous établissez des connexions depuis un ordinateur avec plusieurs connexions ssh simultanées de différents utilisateurs. Vous voudrez utiliser:

~$ ssh username@hostname && kill $(ps -U your_local_username | grep ssh-agent | grep -oP "^\d+")
2
blanket_cat