web-dev-qa-db-fra.com

Délai d'expiration Amazon EC2 ssh en raison de l'inactivité

Je peux envoyer des commandes à mes instances EC2 via SSH et ces commandes enregistrent les réponses que je suis censé continuer à surveiller pendant longtemps. La mauvaise chose est que la commande SSH est fermée après un certain temps en raison de mon inactivité et je ne suis plus en mesure de voir ce qui se passe avec mes instances.

Comment puis-je désactiver/augmenter le délai d'expiration sur les machines Amazon Linux?

L'erreur ressemble à ceci:

Read from remote Host ec2-50-17-48-222.compute-1.amazonaws.com: Connection reset by peer

53
Roberto

Pensez à utiliser screen ou byobu et le problème disparaîtra probablement. De plus, même si la connexion est perdue, vous pouvez vous reconnecter et restaurer l'accès au même écran de terminal que vous aviez auparavant, via screen -r ou byobu -r.

byobu est une amélioration pour l'écran et dispose d'un merveilleux ensemble d'options, telles qu'une estimation des coûts EC2.

9
Iterator

Vous pouvez définir une option de maintien en vie dans votre fichier ~/.ssh/config sur le répertoire personnel de votre ordinateur:

ServerAliveInterval 50

Amazon AWS interrompt généralement votre connexion après seulement 60 secondes d'inactivité, donc cette option enverra une requête ping au serveur toutes les 50 secondes et vous gardera connecté indéfiniment.

105
mauriciomdea

En supposant que votre instance Amazon EC2 exécute Linux (et le cas très probable où vous utilisez SSH-2, pas 1), les éléments suivants devraient fonctionner assez facilement:

  1. À distance dans votre instance EC2.

    ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
    
  2. Ajoutez une directive "client vivant" au fichier de configuration du serveur SSH de l'instance.

    echo 'ClientAliveInterval 60' | Sudo tee --append /etc/ssh/sshd_config
    
  3. Redémarrez ou rechargez le serveur SSH, pour qu'il reconnaisse le changement de configuration.

    • La commande pour cela sur Ubuntu Linux serait ..

      Sudo service ssh restart
      
    • Sur tout autre Linux , cependant, ce qui suit est probablement correct.

      Sudo service sshd restart
      
  4. Déconnectez-vous.

    logout
    

La prochaine fois que vous vous connecterez à cette instance EC2, ces gels/délais d'attente/interruptions fréquents super ennuyeux devraient disparaître.

Cela aide également les instances de Google Compute Engine, qui sont livrées avec des paramètres par défaut ennuyeux similaires.

Attention: Notez que TCPKeepAlive les paramètres (qui existent également) sont subtilement, mais distinctement différents des paramètres ClientAlive que je propose ci-dessus, et que la modification des paramètres TCPKeepAlive de la valeur par défaut peut en fait nuire à votre situation plutôt que de vous aider.

Plus d'informations ici: http://man.openbsd.org/?query=sshd_config

38
naki

Je sais que pour PuTTY, vous pouvez utiliser un paramètre Keepalive afin qu'il envoie des paquets d'activités de temps en temps pour ne pas devenir "inactif" ou "périmé".

http://the.earth.li/~sgtatham/PuTTY/0.55/htmldoc/Chapter4.html#S4.13.4

Si vous utilisez un autre client, faites-le moi savoir.

7
Jesse Collier