GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menentukan apakah saya masuk melalui SSH?

Solusi 1:

Anda dapat menggunakan keluaran perintah "w" atau "siapa". Saat Anda terhubung melalui ssh, mereka akan menampilkan IP sumber Anda.

Solusi 2:

Inilah jawaban bagus yang saya temukan di unix.stackexchange:

  • Jika salah satu variabel SSH_CLIENT atau SSH_TTY didefinisikan, ini adalah sesi ssh.
  • Proses induk shell login dapat diperiksa dengan ps -o comm= -p $PPID . Jika sshd , ini adalah sesi ssh.
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
  SESSION_TYPE=remote/ssh
else
  case $(ps -o comm= -p $PPID) in
    sshd|*/sshd) SESSION_TYPE=remote/ssh;;
  esac
fi

Solusi 3:

Anda dapat menambahkan SSH_* ke env_keep di sudoers sehingga ini dapat dideteksi saat dialihkan ke pengguna lain.

Solusi 4:

Jika Anda ingin tahu apakah bash shell Anda secara langsung merupakan proses anak dari sshd (tidak sedalam n>1 lapisan), Anda bisa

cat /proc/$PPID/status | kepala -1 | potong -f2

itu akan memberi Anda sshd atau apa pun nama proses induk dari shell Anda saat ini.

Solusi 5:

Saya pikir Anda ingin memikirkan kembali cara Anda memikirkan masalah. Pertanyaannya bukanlah "apakah saya masuk melalui SSH, karena saya ingin mematikan perintah tertentu." Itu adalah "apakah saya masuk di konsol, karena dengan begitu saya akan mengaktifkan perintah tertentu."


Linux
  1. Bagaimana cara keluar dari koneksi SSH?

  2. Bagaimana cara terhubung ke mesin virtual hyper-v lokal melalui SSH?

  3. Bagaimana cara menentukan ukuran blok partisi ext3 di Linux?

  1. Cara Menonaktifkan Login Pengguna Root melalui SSH

  2. Ssh – Bagaimana Cara Menjalankan Script Segera Setelah Terhubung Melalui Ssh?

  3. Bagaimana cara mengaktifkan warna di Vim melalui SSH?

  1. Ssh – Bagaimana Cara Mengedit File dari Jarak Jauh Melalui Ssh?

  2. Bagaimana Cara Scp Melalui Mesin Menengah??

  3. Bagaimana cara melakukan tunnel HTTP melalui SSH melalui SOCKS?