我目前正在设置一个相当复杂的 bash 配置,它将在多台机器上使用。我试图找出是否可以确定我是通过 SSH 登录还是在本地计算机上登录。例如,通过这种方式,我可以根据该事实设置一些别名。就像别名一样halt,restart因为停止远程服务器可能不是最好的做法。
到目前为止我所知道的是,环境变量SSH_CLIENT是在我通过 ssh 登录时设置的。不幸的是,当我使用sudo -s. 我也知道我可以向 sudo 传递一个参数,指示 sudo 将我所有的环境变量复制到新的 shell 环境中,但是如果我不想这样做,还有其他方法吗?
fac*_*cha 15
您可以使用“w”或“who”命令输出。当您通过 ssh 连接时,他们会显示您的源 IP。
小智 11
这是我在unix.stackexchange 上找到的一个很好的答案:
SSH_CLIENTor SSH_TTY,则它是一个 ssh 会话。ps -o comm= -p $PPID. 如果是sshd,则是 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22036 次 |
| 最近记录: |