![获取连接到 ssh 会话的计算机的主机名](https://linux22.com/image/583270/%E8%8E%B7%E5%8F%96%E8%BF%9E%E6%8E%A5%E5%88%B0%20ssh%20%E4%BC%9A%E8%AF%9D%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
作为我们某个应用程序的部署脚本的一部分,我正在尝试记录部署的日期、时间和其他相关信息。
按照我们的设置方式,开发人员使用通用的“应用程序”帐户来执行部署,因此记录用户并不是特别有帮助。
是否有可能获取连接到 SSH 会话的机器的主机名?
答案1
您可以查找一个名为 的环境变量SSH_CONNECTION
,该变量在您使用 登录时设置ssh
。如果您想要主机名,您可能需要使用 进行反向查找dig -x <ip address>
。
从手册页中:
SSH_CONNECTION
Identifies the client and server ends of the connection. The variable contains four space-separated values: client ip-address, client port
number, server ip-address and server port number.
答案2
虽然环境变量 SSH_CONNECTION 可能是最好的方法,但还有其他方法。
- 在许多 Linux 发行版中,ssh 和其他登录通常记录在 /var/log/secure 中。
- 为开发人员提供单独的登录名,并让他们使用 sudo 进行应用程序部署,或者让他们的用户对应用程序具有组写访问权限。