¿Hay alguna manera de obtener la dirección IP del cliente SSH del usuario en un script bash?

¿Hay alguna manera de obtener la dirección IP del cliente SSH del usuario en un script bash?

Tengo dos usuarios que necesitan utilizar el mismo inicio de sesión debido a una restricción de la aplicación.

Estos usuarios tienen opiniones muy diferentes sobre cómo debería verse un indicador de shell. Uno de ellos incluso insiste en modificar la paleta de colores. Esto ha resultado en una disputa sobre .bashrc PS1. Les he dado scripts para que establezcan sus propias preferencias pero... digamos que es complicado.

Afortunadamente, ambos se conectan desde ubicaciones con direcciones IP conocidas. ¿Hay alguna manera de incorporar la dirección IP remota del usuario en un condicional y así darles a ambos lo que quieren sin ningún paso adicional por su parte? Se están conectando vía ssh.

Respuesta1

Del manual del cliente OpenSSH SSH ( man 1 ssh):

ENVIRONMENT
sshnormalmente establecerá las siguientes variables de entorno:

[…]

SSH_CONNECTIONIdentifica los extremos cliente y servidor de la conexión. La variable contiene cuatro valores separados por espacios: dirección IP del cliente, número de puerto del cliente, dirección IP del servidor y número de puerto del servidor.

[…]

En .bashrcdeberías hacer como:

case "${SSH_CONNECTION%% *}" in
1.2.3.4|1.2.3.5 )
   PS1=…
   ;;
2.2.7.* )
   PS1=…
   ;;
# add support for more users if needed
esac

o como

if [ "${SSH_CONNECTION%% *}" = "1.2.3.4" ]; then
   PS1=…
else
   PS1=…
fi

Respuesta2

Si inician sesión con ssh usando claves, puedes hacer algo como:

myip=`grep 'Accepted publickey for bozo' /var/log/auth.log | tail -1 | awk '{print $11}'`

y luego compare $myip. Si están usando contraseñas, modifíquelas en consecuencia. (Modifique también si por alguna razón su nombre de usuario no es bozo).

(Esto debería funcionar para Ubuntu y otras variantes de Debian; la ubicación/nombre del archivo de registro de autenticación y el formato exacto pueden variar con otras versiones).

información relacionada