Protéger un accès SSH contre les déconnexions
Par défaut, une session SSH se termine en cas de déconnexion intempestive, tuant automatiquement tout programme y tournant. Ce guide utilise l'utilitaire byobu pour automatiquement détacher un shell ayant subit une déconnexion intempestive, et le rattacher à la prochaine connexion.
Ce guide est testé sur:
- Debian 7.0 Wheezy
Paramètres
Renseignez le nom de l'utilisateur à protéger (utilisé pour se connecter avec SSH):
username="remote-user"
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Détectez le chemin du dossier personnel de l'utilisateur:
userPath="$(command getent 'passwd' "${username}" | command cut -d: -f6)"
Préparation de l'environnement
Installez les logiciels nécessaires:"
${cmdProxy} apt-get install byobu vlock
Mise en place
Activez l'outil pour l'utilisateur protégé:
${cmdProxy} su "${username}" -c "command byobu-launcher-install"
Configurez le verrouillage automatique du terminal après une période d'inactivité de 5 minutes:
echo 'set-option -g lock-command vlock
set-option -g lock-after-time 300' \
| ${cmdProxy} su "${username}" -c "command tee '${userPath}/.byobu/.tmux.conf'"
${cmdProxy} chown "${username}":"${username}" "${userPath}/.byobu/.tmux.conf"
La prochaine session à distance de l'utilisateur sera automatiquement récupérée en cas de déconnexion intempestive.
Remerciements
- Merci aux participants de Use GNU screen as login “shell" (en).
- Merci aux développeurs de Byobu (en).