Redémarrez SSH sur une machine où SSH est le seul mode d'accès

29

J'ai apporté quelques modifications au fichier sshd_config et j'ai donc besoin de redémarrer. Je suis à la recherche de conseils pour redémarrer ssh en toute sécurité lorsque l'accès physique au serveur serait un huga PITA.

Mitch
la source

Réponses:

42

Le redémarrage de sshd lorsque vous êtes connecté via ssh ne déconnectera pas votre connexion ssh.

Si vous êtes inquiet au sujet de votre configuration, connectez-vous plusieurs fois via ssh et redémarrez. Si vous ne pouvez plus utiliser ssh, avec de nouvelles connexions, vous avez maintenant accès pour résoudre les problèmes.

Mentionné ci-dessous dans un commentaire de @Milan Babuškov: sshd -ttestera votre configuration pour l'exactitude de la syntaxe, si vous voulez vraiment en être certain.

Une autre suggestion de @Ronald Pottol était de mettre en place une crontâche pour redémarrer le serveur avec une configuration de travail connue. Peut-être exagéré, mais si vous mettez à jour un serveur essentiel à la mission, etc ... parfois, vous ne pouvez jamais être trop prudent.

cpbills
la source
C'est assez facile, c'est aussi logique. Merci pour la réponse vraiment rapide. Pour info les changements que j'apportais ont très bien fonctionné;)
Mitch
6

Si vous avez accès au matériel, vous pouvez envisager de placer un terminal sur le port série / dev / ttyS0. Ensuite, vous pouvez avoir une porte dérobée dans votre serveur.

ajoutez simplement

SO:2345:respawn:/sbin/mingetty ttySO

à votre / etc / inittab et un terminal apparaîtra sur votre port série. Vous pouvez utiliser un concentrateur de port série ou utiliser un modem nul à partir du serveur à côté de lui.

keithosu
la source
Cool! Est-ce une pratique assez courante?
Mitch
3
Assez standard, tant que vous avez un moyen de vous connecter à la machine qui est le serveur de terminaux série.
Kamil Kisiel
2
Cela peut être le cas, mais en raison de la virtualisation, ce n'est pas aussi nécessaire car vous pouvez gérer via l'hyperviseur. Une autre chose intéressante est que si le BIOS le prend en charge, c'est la «redirection de console» qui affichera tous les écrans du BIOS via votre console série. GRUB a également la possibilité d'afficher sur la console série. Il n'y a donc pas besoin de vidéo à distance pour voir si votre serveur reviendra en ligne.
keithosu
4

Ne vous inquiétez pas, votre session actuelle ne sera pas déconnectée, même en cas de problème avec la nouvelle configuration.

Après avoir appliqué la nouvelle configuration et redémarré sshd, essayez simplement de vous connecter plusieurs fois et jetez un œil aux journaux pour voir si tout va bien.

Marco Ramos
la source
3

Ou, utilisez un cron ou au travail pour le redémarrer, si vous vous sentez malchanceux?

Ronald Pottol
la source
cronou atfonctionnerait, pour copier un fonctionnement "connu", c'est-à-dire l'ancienne configuration, puis faire un redémarrage du service ...
cpbills
1

Ne pourriez-vous pas simplement exécuter un kill -HUP dans le PID du service SSH? Ce n'est pas propre mais ça marche


la source
2
Souvent, SIGHUP c'est la façon la plus simple de recharger la configuration d'un démon.
grawity
Il est propre dans ce cas. De la source faisant autorité: sshd relit son fichier de configuration lorsqu'il reçoit un signal de raccrochage, SIGHUP
Stéphane Gourichon
1
pkill -HUP sshdfermé ma connexion. Cela a fonctionné:kill -HUP $(pgrep -f /usr/bin/sshd)
Tom Hale
0

J'ai constaté que de nos jours sshdne déconnecte pas vos sessions lors du redémarrage, en particulier lorsqu'il s'agit d'une distribution basée sur Redhat. Vous pouvez toujours écrire un petit script qui restaurera automatiquement votre sshdconfiguration à partir de la sauvegarde et redémarrera sshdaprès 5 min en tant que cronou at. Cela garantira que même si vous êtes déconnecté, vous pouvez au moins revenir sur votre serveur.

Riaan
la source
-1

Je ne recommanderais pas de redémarrer / recharger SSHD sur une connexion sshd. J'ai vu de nombreuses fois où sshd ne pouvait tout simplement pas redémarrer à cause d'une erreur de syntaxe dans sshd_config.

Même si tout va bien avec le fichier de configuration, c'est risqué.

Murat Arslan
la source
9
Vous pouvez utiliser sshd -t pour tester le fichier de configuration au préalable.
Milan Babuškov
Merci Milan, j'ai rapidement cherché à travers l'homme une option comme ça, dans Apache ses -s donc je devais être trop concentré sur -s.
Mitch
je vais absorber votre commentaire dans ma réponse, également lorsque sshd se termine, cela ne met pas fin aux sessions ssh ouvertes, mais il est bon de savoir que votre syntaxe est valide, si vous la transpirez.
cpbills