Como eu detecto se a sessão atual é uma sessão SSH via bash?

0

Gostaria de detectar se a sessão do usuário atual é de uma conexão SSH - ou seja, se o usuário está fisicamente sentado no computador que hospeda o terminal atual ou se está conectado remotamente por meio do SSH?

Existe uma maneira fácil de fazer isso, de preferência por meio de um método de script bash?

    
por fouric 18.10.2014 / 06:06

1 resposta

1

Uma maneira rápida seria verificar se a variável SSH_TTY está definida:

$ ssh lab
$ echo $SSH_TTY 
/dev/pts/22

Existem algumas variáveis relacionadas ao SSH definidas. Dois outros são SSH_CLIENT e SSH_CONNECTION . Qualquer um deles pode ser usado também.

Outra maneira seria verificar se um processo ancestral é o daemon sshd :

$ pstree -ps $$
init(1)───sshd(1170)───sshd(14153)───sshd(14225)───bash(24232)───pstree(27281)

Leitura relevante:

por muru 18.10.2014 / 06:10