GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, zda je Shell řízen z Ssh?

Chci zjistit ze skriptu shellu (konkrétněji .zshrc), zda je řízen přes SSH. Zkoušel jsem proměnnou HOST, ale vždy je to název počítače, na kterém je spuštěn shell. Mohu získat přístup k názvu hostitele, ze kterého pochází relace SSH? Porovnání těchto dvou by můj problém vyřešilo.

Pokaždé, když se přihlásím, zobrazí se zpráva s časem posledního přihlášení a hostitelem:

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

To znamená, že server má tyto informace.

Přijatá odpověď:

Zde jsou kritéria, která používám ve svém ~/.profile :

  • Pokud je jedna z proměnných SSH_CLIENT nebo SSH_TTY je definováno, je to relace ssh.
  • Pokud je název nadřazeného procesu přihlašovacího prostředí sshd , je to relace 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

(Proč byste to chtěli otestovat v konfiguraci shellu a ne při spuštění relace?)


Linux
  1. Jak vyhledávat na webu z terminálu v systému Linux

  2. Jak na SSH na Linuxu z Androidu

  3. Jak odstranit Bom ze souboru UTF-8?

  1. Jak spouštět skripty Pythonu ze shellu

  2. Jak změnit výchozí prostředí v Linuxu

  3. Kódování do base32 z shellu

  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Zjistit iniciační systém pomocí Shell?

  3. Jak zkontrolovat, zda je stdin /dev/null z shellu?