GNU/Linux >> Znalost Linux >  >> Linux

ssh tunelování pouze přístup

Řešení 1:

Ano, stačí použít /bin/false jako shell a instruovat uživatele, aby spustil proces tunelování SSH bez provedení jakéhokoli vzdáleného příkazu (tj. -N příznak pro OpenSSH):

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

Řešení 2:

Do uživatelského souboru .ssh/authorized_keys vložte něco jako následující:

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

Takže v podstatě byste ovládací prvky měli před veřejným klíčem ssh uživatele odděleným mezerou. V tomto příkladu bude připojení pomocí specifického veřejného klíče povoleno provádět přesměrování portů SSH pouze na server MySQL 192.168.1.10 a webový server 10.0.0.16 a nebude jim přiřazen shell (no-pty). Ptáte se konkrétně na možnost „no-pty“, ale ostatní mohou být také užitečné, pokud má uživatel tunelovat pouze na konkrétní servery.

Podívejte se na manuálovou stránku pro sshd, kde najdete další možnosti pro soubor author_keys.

Všimněte si, že uživatelská zkušenost může vypadat trochu zvláštně:když se připojí ssh, bude to vypadat, že relace visí (protože nedostávají pty). To je v pořádku. Pokud uživatel zadal přesměrování portů, například „-L3306:192.168.1.10:3306“, bude přesměrování portů stále platné.

V každém případě to vyzkoušejte.

Řešení 3:

Dejte uživateli shell, který mu umožňuje pouze odhlášení, například /bin/press_to_exit.sh

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

Tímto způsobem může zůstat přihlášený, jak dlouho chce, s aktivními tunely, ale nespouštět žádné příkazy. Ctrl-c ukončí spojení.

Řešení 4:

Přiřaďte shell, který nedovolí uživateli přihlásit se.

např.

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

by jim zabránil dostat výzvu shellu a dal jim časový limit 60 sekund - pokud není aktivní žádné připojení po dobu 60 sekund, ukončí se a tím je úplně odpojí (zvyšte počet podle požadavků).

Nemohou také provést vzdálený příkaz, protože jim to shell nedovolí.


Linux
  1. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  2. Ssh – Přidání uživatele, který může spouštět skripty pouze vzdáleně?

  3. Jak vytvořit nového uživatele s přístupem Ssh?

  1. Poskytnout Virtualboxu přístup pouze konkrétním uživatelům?

  2. Jak omezit su přístup pouze uživateli pomocí PAM v Linuxu

  3. Jak poskytnout ssh přístup uživateli v Ubuntu

  1. Nastavte vzdálený přístup k shellu (RSH) na CentOS 6 / RHEL 6

  2. Jak omezit přístup SSH pro uživatele pomocí LShell (Limited Shell)

  3. Jak omezit uživatele SSH, aby povolil pouze tunelování SSH?