Configurer SSH pour autoriser la redirection de port mais aucune commande pour une clé particulière?

8

J'ai donc ajouté une clé publique à authorized_keys. Comment puis-je le limiter pour qu'il puisse rediriger des ports mais qu'il ne puisse pas avoir de shell?

thelsdj
la source

Réponses:

10

Vous devez mettre un no-ptymot - clé avant votre clé pour qu'il ressemble à ceci:

no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABBACzbcwCZNaN3HhHmpnaVrfZlNJ0HhPnOqEj
k2llms1OOPnEXetIlZuJw0UXbyMbhQbBl/E2wxXvXvF+jyLRR5yN6kBydM4LhjC0ej0PcH839vXd
uwJpDFjPw3s7r0VOhU1WRyk6Da6rX6shzabhQioIm3MHCjNOdywPb0k1cTj4yOxoOCOqGjmXK0
xxzTd+ZjTJqQGWzZ+8L8cVtKmU8kspYlCdhGWSv0Den36OsScnWTBn8A3X3lVJB5NkEm
BM1yKX4F6BhhD317VensEUu031PtFULeSF97IxDPmK36OFz9TPSf4d8Hp3BqtysqUlbWfEhYdHXj
+1Mn4xXZKiZhBh1DX youruser@yourhome

(Tout est sur une seule ligne, j'ai ajouté les sauts de ligne pour plus de lisibilité).

MISE À JOUR: si vous voulez empêcher l'exécution de commandes à distance, vous devez ajouter: command="/bin/false"

no-pty,command="/bin/false" ssh-rsa ...
cstamas
la source
4
Cela limite la possibilité d'avoir une connexion à distance, cela n'empêche pas l'exécution à distance des commandes. Src: marc.info/?l=openssh-unix-dev&m=111143581515782&w=2
mctylr
1
@mctylr: cela ne faisait pas partie de la question. Mais vous avez raison, peut-être que le PO n'était pas au courant de cela, alors j'ai ajouté cela à la réponse. (+1)
cstamas
1
Il convient également de noter que vous devez utiliser 'ssh -N' pour maintenir le tunnel en place lorsqu'il n'y a pas de shell à l'extrémité distante.
Mike Pountney
1

homme sshd

Section FORMAT DE FICHIER AUTHORIZED_KEYS . Vous pouvez restreindre ce que les utilisateurs peuvent transférer vers simplement en ajoutant les ports et les hôtes que vous souhaitez autoriser, comme

permitopen = "192.0.2.1:80"

Vous pouvez également restreindre d'où l'utilisateur se connecte, quelles commandes peuvent exécuter, etc.


la source
1

J'envisagerais d' utiliser scponly , je pense qu'il peut être utilisé pour la redirection de port plutôt que pour l'accès scp / sftp uniquement. Il est destiné à empêcher l'utilisateur de se connecter ou d'exécuter des commandes via ssh.

L'autre facteur dont vous pourriez avoir besoin ou que vous souhaitez utiliser sshd dans un environnement chroot , est quelques instructions sur la configuration de sftp à l'aide de chroot. Vous devriez pouvoir les adapter assez facilement.

J'espère que cela vous aide à trouver votre solution.

mctylr
la source
scponlysemble avoir migré vers github.com/scponly/scponly . Votre lien donne un 404. :(
Bill Weiss