GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Mendeteksi Jika Shell Dikendalikan Dari Ssh?

Saya ingin mendeteksi dari skrip shell (lebih khusus .zshrc) jika dikontrol melalui SSH. Saya mencoba variabel HOST tetapi selalu nama komputer yang menjalankan shell. Bisakah saya mengakses nama host tempat sesi SSH berasal? Membandingkan keduanya akan menyelesaikan masalah saya.

Setiap kali saya login ada pesan yang menyatakan waktu login terakhir dan host:

Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1
Last login: Fri Mar 18 23:11:56 2011 from max

Ini berarti server memiliki informasi ini.

Jawaban yang Diterima:

Berikut adalah kriteria yang saya gunakan dalam ~/.profile saya :

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

(Mengapa Anda ingin menguji ini dalam konfigurasi shell Anda daripada memulai sesi Anda?)


Linux
  1. Cara Mencari Web Dari Terminal Di Linux

  2. Cara SSH di Linux dari Android

  3. Bagaimana Cara Menghapus Bom Dari File Utf-8?

  1. Bagaimana Cara Mengambil Kunci Publik Dari Kunci Pribadi Ssh?

  2. Cara menjalankan skrip Python dari shell

  3. Cara Mengubah Shell Default Di Linux

  1. Bagaimana saya bisa menentukan pemanfaatan CPU saat ini dari shell?

  2. Bagaimana cara mendeteksi peluncuran program di Linux?

  3. adb:Temukan PID dari shell adb