GNU/Linux >> Tutoriels Linux >  >> Linux

accès au tunneling ssh uniquement

Solution 1 :

Oui, utilisez simplement /bin/false en tant que shell et demandez à l'utilisateur de démarrer le processus SSH de tunneling sans exécuter de commande à distance (c'est-à-dire le -N drapeau pour OpenSSH) :

ssh -N -L 1234:target-host:5678 ssh-host

Solution 2 :

Dans le fichier .ssh/authorized_keys de l'utilisateur, mettez quelque chose comme ceci :

permitopen="192.168.1.10:3306",permitopen="10.0.0.16:80",no-pty ssh-rsa AAAAB3N...

Donc, fondamentalement, vous les contrôles se trouveraient devant la clé publique ssh de l'utilisateur, séparés par un espace. Dans l'exemple, les connexions utilisant la clé publique spécifique seront autorisées à effectuer une redirection de port SSH uniquement vers le serveur MySQL de 192.168.1.10 et le serveur Web de 10.0.0.16, et ne se verront pas attribuer de shell (no-pty). Vous demandez spécifiquement l'option "no-pty", mais les autres peuvent également être utiles si l'utilisateur n'est censé se connecter qu'à des serveurs spécifiques.

Consultez la page de manuel de sshd pour plus d'options pour le fichier authorized_keys.

Notez que l'expérience de l'utilisateur peut sembler un peu étrange :lorsqu'il se connecte en ssh, il semblera que la session est suspendue (car il n'obtient pas de pty). C'est bon. Si l'utilisateur a spécifié la redirection de port avec, par exemple, "-L3306:192.168.1.10:3306", la redirection de port sera toujours effective.

Dans tous les cas, essayez-le.

Solution 3 :

Donnez à l'utilisateur un shell qui lui permet uniquement de se déconnecter, tel que /bin/press_to_exit.sh

#!/bin/bash
read -n 1 -p "Press any key to exit" key

De cette façon, il peut rester connecté aussi longtemps qu'il le souhaite, avec des tunnels actifs, mais sans exécuter de commandes. Ctrl-c ferme la connexion.

Solution 4 :

Attribuez un shell qui ne permet pas à l'utilisateur de se connecter.

ex.

#!/bin/sh
echo "No interactive login available."
sleep 60
exit 0

les empêcherait de recevoir une invite du shell et leur donnerait un délai d'attente de 60 secondes - s'il n'y a pas de connexion active pendant 60 secondes, il se fermera et les déconnectera ainsi complètement (augmentez le nombre en fonction des besoins).

Ils ne peuvent pas non plus exécuter de commande à distance, car ce shell ne les autorise pas.


Linux
  1. Comment restreindre l'accès SSH pour l'utilisateur avec LShell (shell limité)

  2. Ssh – Restreindre un utilisateur Ssh/scp/sftp à un répertoire ?

  3. Comment créer un nouvel utilisateur avec un accès Ssh ?

  4. Comment donner un accès ssh à un utilisateur dans Ubuntu

  5. Comment restreindre un utilisateur SSH pour autoriser uniquement le tunnel SSH ?

Comment limiter l'accès de l'utilisateur au système Linux

Comment autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux

Comment restreindre l'accès SSH à certains utilisateurs sous Linux

Comment créer un utilisateur SFTP uniquement dans Debian 11

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

Impossible d'obtenir l'accès SSH pour un nouvel utilisateur