Comment ssh peut-il permettre de configurer la redirection de port à distance mais pas d'exécuter des commandes?

8

Comment une commande SSH peut-elle être configurée pour permettre la redirection de port mais pas pour exécuter des commandes.

Je sais que la connexion ssh peut utiliser -N pour arrêter l'exécution des commandes, mais le fichier de configuration ssh peut-il être configuré pour le désactiver?

Restreindre le type de shell et le chemin sous Linux est en option, mais peut-il être fait dans la configuration SSH elle-même?

vfclists
la source

Réponses:

6

Regardez man sshdet recherchezAUTHORIZED_KEYS FILE FORMAT

Ce que vous voulez faire est de créer une paire de clés publique / privée et de placer la clé publique dans le ~/.ssh/authorized_keysfichier normalement. Modifiez ensuite le authorized_keysfichier pour ajouter la chaîne:

command = "/ bin / false", pas de transfert d'agent, pas de pty, pas d'utilisateur-rc, pas de transfert X11, permitopen = "127.0.0.1:80"

Cela finira par ressembler à:

command="/bin/false",no-agent-forwarding,no-pty,no-user-rc,no-X11-forwarding,permitopen="127.0.0.1:80" ssh-dss AAAAC3...51R==

Vous voudriez changer l'argument en «permitopen» et éventuellement changer certains des autres paramètres, mais je pense que c'est fondamentalement ça.

Slartibartfast
la source
Je suppose que le permitopen définit les ports locaux qui peuvent être transférés du côté des utilisateurs. Cela affecte-t-il la redirection de port à distance? S'applique-t-il uniquement à cette clé?
vfclists
Le fichier authorized_keys se trouve à l'extrémité distante (serveur ssh). Il indique les combinaisons hôte + port auxquelles les clients avec la clé autorisée sont autorisés à se connecter via le serveur. Le port que vous utilisez du côté local (client ssh) n'est pas pertinent (et n'est probablement pas communiqué au serveur), il est donc omis. Oui, cela s'applique uniquement à cette clé (c'est pourquoi elle est répertoriée sur la même ligne que la clé publique correspondant à la clé autorisée)
Slartibartfast
1
Il y a une faute de frappe ici: no-usr-rcdevrait l'être no-user-rc.
xebeche
2
Il y a toujours une instance de no-usr-rc dans la réponse - vous ne savez pas si vous en avez manqué une ou si la modification n'a pas été traitée?
Dave Gregory
1
C'est pourquoi je déteste la règle de limite de 6 caractères. J'ai passé une demi-heure à essayer de comprendre ce qui ne va pas, quand j'ai copié celle avec la faute de frappe, seulement pour découvrir que c'est parce que personne sauf le propriétaire ne peut corriger cette réponse.
zypA13510