GNU/Linux >> Belajar Linux >  >> Linux

ssh tunneling hanya akses

Solusi 1:

Ya, gunakan saja /bin/false sebagai shell dan menginstruksikan pengguna untuk memulai proses tunneling SSH tanpa menjalankan perintah jarak jauh apa pun (yaitu -N bendera untuk OpenSSH):

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

Solusi 2:

Di file .ssh/authorized_keys pengguna, masukkan sesuatu seperti berikut:

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

Jadi, pada dasarnya, kontrol Anda akan berada di depan kunci publik ssh pengguna yang dipisahkan oleh spasi. Dalam contoh, koneksi yang menggunakan kunci publik tertentu akan diizinkan untuk melakukan penerusan port SSH hanya ke server MySQL 192.168.1.10 dan server web 10.0.0.16, dan tidak akan diberi shell (no-pty). Anda secara khusus menanyakan tentang opsi "no-pty", tetapi yang lain mungkin juga berguna jika pengguna seharusnya hanya melakukan tunnel ke server tertentu.

Lihat halaman manual untuk sshd untuk opsi lainnya untuk file authorized_keys.

Perhatikan bahwa pengalaman pengguna mungkin terlihat sedikit aneh:ketika mereka ssh masuk, sesi akan terlihat seperti macet (karena mereka tidak mendapatkan pty). Tidak apa-apa. Jika pengguna telah menentukan penerusan port dengan, misalnya, "-L3306:192.168.1.10:3306", penerusan port akan tetap berlaku.

Bagaimanapun, cobalah.

Solusi 3:

Beri pengguna sebuah shell yang hanya memungkinkan mereka untuk keluar seperti /bin/press_to_exit.sh

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

Dengan cara ini dia bisa tetap masuk selama dia mau, dengan terowongan aktif, tetapi tidak menjalankan perintah apa pun. Ctrl-c menutup koneksi.

Solusi 4:

Tetapkan shell yang tidak mengizinkan pengguna masuk.

mis.

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

akan mencegah mereka mendapatkan prompt shell, dan memberi mereka batas waktu 60 detik - jika tidak ada koneksi yang aktif selama 60 detik maka itu akan keluar dan dengan demikian memutuskannya sepenuhnya (meningkatkan jumlahnya sesuai dengan persyaratan).

Mereka juga tidak dapat menjalankan perintah jarak jauh, karena shell itu tidak mengizinkan mereka.


Linux
  1. Berikan Akses Virtualbox Hanya Untuk Pengguna Tertentu?

  2. Nonaktifkan Login Root Langsung dan Akses Pengguna melalui SSH ke Server

  3. Cara Membatasi Akses su ke Pengguna Hanya dengan PAM di Linux

  1. Cara Menggunakan Tunneling SSH untuk Mengakses Server yang Dibatasi

  2. Bagaimana cara memberikan akses ssh ke pengguna di Ubuntu

  3. Bagaimana cara membatasi pengguna SSH untuk hanya mengizinkan tunneling SSH?

  1. Cara Membatasi Akses SSH untuk Pengguna dengan LShell (Limited Shell)

  2. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  3. Ssh – Menambahkan Pengguna yang Hanya Dapat Mengeksekusi Script dari Jarak Jauh?