J'utilise ssh -p8520 username@remote_host
pour me connecter au serveur distant.
Problème :
Il est toujours connecté et fonctionne correctement lorsque je suis sur le lieu de travail. Malheureusement, le terminal se bloque en 10 à 15 minutes après ma connexion au serveur distant depuis mon domicile.
Il n'y a pas de rapport d'erreur / timeout sur la console mais le curseur ne peut plus bouger.
Lorsque vous entrez wpour vérifier les utilisateurs de connexion, certains utilisateurs de connexion zombies sont là et je dois les tuer manuellement.
C'est assez ennuyeux. Quelqu'un peut-il m'aider?
screen
. C'est peut-être une sorte de problème de délai d'attente.screen
aide à maintenir le programme en marche. Malheureusement, je dois parfois travailler sur le serveur distant :(screen
seulement? Il peut résoudre le problème de connexion perdue? Nonscreen -S screenName
? J'utilise toujours l'écran avec-S
et-r
screen
. Vous semblez déjà le savoir;)Réponses:
Le démon ssh (sshd), qui s'exécute côté serveur, ferme la connexion côté serveur si le client devient silencieux (c'est-à-dire qu'il n'envoie pas d'informations). Pour éviter toute perte de connexion, demandez au client ssh d'envoyer un signal de signe de vie au serveur de temps en temps.
La configuration pour cela est dans le fichier
$HOME/.ssh/config
, créez le fichier s'il n'existe pas (le fichier de configuration ne doit pas être lisible par le monde, donc exécutez-lechmod 600 ~/.ssh/config
après avoir créé le fichier). Pour envoyer le signal toutes les quatre minutes (240 secondes, par exemple) à l'hôte distant, placez ce qui suit dans ce fichier de configuration:Pour activer l'envoi d'un signal continu pour tous les hôtes, placez le contenu suivant dans le fichier de configuration:
la source
ServerAliveInterval
tandis que le serveur utiliseClientAliveInterval
. Quel bordel.Je voulais une solution unique:
Stocké dans un alias:
Vous pouvez maintenant vous connecter comme ceci:
la source
Host *
&ServerAliveInterval 240
(ou spécifier le nom d'hôte, si vous le souhaitez uniquement[email protected]
comme dans la réponse de rockymonkey555? La définition d'un alias ne semble en aucun cas plus facile.alias ssh='ssh -o ServerAliveInterval=60'
ServerAliveInterval
sur60
, super. Cependant, utiliser un alias bash alors que vous pourriez l'utiliser.ssh/config
est tout simplement stupide.Pour ceux qui se demandent, @ edward-coast
Si vous souhaitez définir la conservation du serveur , ajoutez ceci à
/etc/ssh/sshd_config
:la source
ClientAliveInterval
pour laisser le serveur vérifier le client vivant, ou dois-je laisser le client "cingler" le serveur àServerAliveInterval
plusieurs reprises? Les deux ne semblent pas avoir de sensClientAliveInterval
sur le serveur que si vous souhaitez que le serveur se déconnecte sur les connexions mortes qui ne répondent pas, et vous pouvez personnaliser la fréquence et le moment où cela se produit.Les utilisateurs de FYI Putty peuvent définir les options ici
la source
Nous pouvons garder notre connexion ssh en vie en ayant les configurations globales suivantes
Ajoutez la ligne suivante au
/etc/ssh/ssh_config
fichier:la source