On Mon, Mar 27, 2023 at 12:07:38AM +0200, Paul van der Vlis wrote:
Op 26-03-2023 om 23:51 schreef Paul van der Vlis:
Hoi Geert en anderen,
Op 26-03-2023 om 12:50 schreef Geert Stappers:
Hoi,
Uit `man 1 ssh`
-N Do not execute a remote command.
This is useful for just forward ports.
Nu is `ssh -N` een client kant ding.
Hoe aan server kant borgen dat alleen maar port forwarding gebeurd?
Ik had gedacht om het dicht te timmeren door aan authorized_keys
op de server wat toe te voegen aan de regel met de pubkey voor
het account dat de `ssh -N` moet gaan doen.
Er is "no-port-forwarding"
https://www.ssh.com/academy/ssh/authorized-keys-openssh#no-port-forwarding
maar niet iets als "only-port-forwarding"
https://www.ssh.com/academy/ssh/authorized-keys-openssh
Wat zien jullie zoal aan mogelijkheden om aan server kant
er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt, dat shell access niet kan?
Wat ik doe aan de server-kant is /usr/sbin/nologin als shell gebruiken.
Oh, en ik zie dat ik ook dit nog doe in sshd_config:
-----
UsePAM no
Match User een,twee
AllowTcpForwarding remote
AllowStreamLocalForwarding no
X11Forwarding no
PermitTTY no
PermitEmptyPasswords yes
PasswordAuthentication yes
-----
Kritiek is welkom ;-)
Stukje zelfkritiek:
er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt, dat shell access niet kan?
had
er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt.
zullen zijn.
Dat aandacht op "alleen maar een verbinding voor portforward" blijft.
Oorspronkelijke vraag heb ik kunnen oplossen door
command="echo Don\'t do that"
voor de pubkey in ~/.ssh/authorized_keys te zetten. Dat is aan server
kant.
Als ik `ssh -N -R 2222:127.0.0.1:22 server` doe, krijg ik de gewenste
portforward. Als ik iets zonder `-N` doe, komt er "Don't do that" terug.