如何查找我从哪台计算机连接到当前服务器

如何查找我从哪台计算机连接到当前服务器

我经常在一台可用的 Linux/HP-UX 服务器上工作(假设它是 server1),然后执行 ssh server2((假设它是 server2))并开始在另一台 Linux/HP-UX 服务器上工作。然后我可以连接另一台服务器((假设它是 server3)并开始处理它。在 server3 上工作时如何从我来自的服务器获取命令行信息?

那么在 server3 上我想获取来自 server2 的信息,在 server2 上我想获取来自 server1 的信息?它的命令或实用程序是什么?

答案1

至少对于 Linux,who <arg> <arg>将显示您连接的主机。

$ who hates java
error    pts/3        2013-11-20 08:35 (underground)

HP/UX 手册页表明该操作系统也是如此。理应如此;几十年来我一直在各种 Unix 上使用它......

答案2

ssh 总是在成功连接时设置几个环境变量, 包括:

SSH_CONNECTION

标识连接的客户端和服务器端。该变量包含四个空格分隔的值:客户端 IP 地址、客户端端口号、服务器 IP 地址和服务器端口号。

这是一个例子:

$ ssh user@host
user@host$ echo $SSH_CONNECTION
192.168.223.17 36673 192.168.223.229 22

因此,可以获取此环境变量,然后nslookup获取有关完成连接的主机的信息:

user@host$ nslookup "${SSH_CONNECTION%% *}"'
...
Name:      192.168.223.17
Address 1: 192.168.223.17 foo.bar

除非who(1)这也可以通过非交互式 ssh 命令工作,并且不依赖于有缺陷/不可靠的 utmp 机制。

答案3

whowhoamilast想到但没有 HPUX 可供测试

相关内容