GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo saber si he iniciado sesión a través de SSH?

Solución 1:

Puede usar la salida del comando "w" o "who". Cuando te conectes a través de ssh, mostrarán tu IP de origen.

Solución 2:

Aquí hay una gran respuesta que encontré en unix.stackexchange:

  • Si una de las variables SSH_CLIENT o SSH_TTY está definido, es una sesión ssh.
  • El proceso principal del shell de inicio de sesión se puede verificar con ps -o comm= -p $PPID . Si es sshd , es una sesión 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

Solución 3:

Podrías agregar SSH_* a env_keep en sudoers para que esto pueda detectarse mientras se cambia al otro usuario.

Solución 4:

Si desea saber si bash shell es directamente un proceso secundario de sshd (no n> 1 capas de profundidad), puede

cat /proc/$PPID/estado | cabeza -1 | cortar -f2

debería darte sshd o cualquiera que sea el nombre del proceso principal de su shell actual.

Solución 5:

Creo que quieres repensar la forma en que estás pensando en el problema. La pregunta no es "¿estoy conectado a través de SSH, porque quiero desactivar ciertos comandos". Es "Estoy conectado a la consola, porque entonces habilitaré ciertos comandos".


Linux
  1. Cómo deshabilitar el inicio de sesión del usuario raíz a través de SSH

  2. Ssh:¿cómo ejecutar un script inmediatamente después de conectarse a través de Ssh?

  3. Ssh:¿cómo editar archivos de forma remota a través de Ssh?

  4. ¿Cómo hacer un túnel HTTP sobre SSH a través de SOCKS?

  5. ¿Cómo scp a través de una máquina intermedia?

Cómo conectarse a su servidor web a través de SSH

¿Cómo Scp a través de una máquina intermedia?

Cómo conectarse a su servidor a través de SSH

¿Cómo iniciar sesión en mi cuenta de cPanel a través de SSH?

Cómo SSH al servidor a través de Linux

Cómo restaurar una copia de seguridad de cPanel a través de SSH