GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, zda jsem přihlášen přes SSH?

Řešení 1:

Můžete použít výstup příkazu "w" nebo "who". Když se připojíte přes ssh, zobrazí vaši zdrojovou IP.

Řešení 2:

Zde je skvělá odpověď, kterou jsem našel na unix.stackexchange:

  • Pokud je jedna z proměnných SSH_CLIENT nebo SSH_TTY je definováno, je to relace ssh.
  • Rodičovský proces přihlašovacího shellu lze zkontrolovat pomocí ps -o comm= -p $PPID . Pokud je sshd , je to relace 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

Řešení 3:

Můžete přidat SSH_*env_keep v sudoers aby to bylo možné zjistit při přepnutí na jiného uživatele.

Řešení 4:

Pokud chcete vědět, zda je váš bash shell přímo podřízeným procesem sshd (nikoli n>1 vrstev hluboko), můžete

cat /proc/$PPID/status | hlava -1 | řez -f2

měl by vám dát sshd nebo co je název nadřazeného procesu vašeho aktuálního shellu.

Řešení 5:

Myslím, že chcete přehodnotit způsob, jakým o problému uvažujete. Otázka nezní "jsem přihlášen přes SSH, protože chci vypnout určité příkazy." Je to "jsem přihlášen do konzole, protože pak povolím určité příkazy?"


Linux
  1. Jak zakázat přihlášení uživatele root přes SSH

  2. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  3. Kolik uživatelů Linux podporuje přihlášení současně přes SSH?

  1. Ssh – Jak vzdáleně upravovat soubory přes Ssh?

  2. Jak Scp přes střední stroj?

  3. Jak scp přes prostřední stroj?

  1. Jak tunelovat HTTP přes SSH přes SOCKS?

  2. Jak ukončím připojení SSH?

  3. Jak se připojit k místnímu virtuálnímu počítači hyper-v přes SSH?