hal*_*leo 7 ssh remote hostname
在远程 shell 中,如何找到我登录到远程机器的计算机的域名?
示例:我的本地机器是mi.pona.com. 在这台机器上我运行
ssh toki@sina.pona.com
Run Code Online (Sandbox Code Playgroud)
登录到远程机器sina.pona.com。在打开(在远程机器上运行)的 shell 中,我想知道我是从哪台计算机登录的,所以我想得到结果“ mi.pona.com ”。有这个命令吗?
pin*_*ime 18
ssh 总是将SSH_CONNECTION远程 shell 中的环境变量设置为包含客户端和服务器的主机和端口的值。
这也适用于非交互式 shell 和没有 utmp/systemd/whatever 的机器(例如在您的路由器或相机上)。
ssh root@unq 'echo $SSH_CONNECTION'
192.168.38.152 35466 192.168.38.1 22
Run Code Online (Sandbox Code Playgroud)
然后您可以对该地址进行反向主机查找:
ssh root@unq.und 'nslookup "${SSH_CONNECTION%% *}"'
...
Name: 192.168.38.152
Address 1: 192.168.38.152 bursku.und
Run Code Online (Sandbox Code Playgroud)
在我的 Red Hat 7 机器上,我运行who am iorwho am I或who -m.
最后一列将显示我从哪里登录的机器名称(在括号中)。如果我在我的本地机器上,最后一列将显示我的控制台/显示 ID。在我的机器上是 (:0)。
警告
这仅适用于交互式 shell。
ssh ScottieH@RemoteServer who -m会产生意想不到的结果。
在我的 Red Hat 7 机器上,它出现错误。
青年会