Ssh

在遠端 shell 中,我如何找出我從哪台電腦登錄到遠端電腦?

  • October 9, 2020

在遠端 shell 中,如何找到我登錄到遠端電腦的電腦的域名?

範例:我的本地機器是mi.pona.com. 在這台機器上我執行

ssh toki@sina.pona.com

登錄到遠端機器sina.pona.com。在打開的外殼(在遠端機器上執行)我想找出我從哪台電腦登錄,所以我想得到結果“ mi.pona.com ”。有這個命令嗎?

在我的 Red Hat 7 機器上,我執行who am iorwho am Iwho -m.

最後一列將顯示我登錄的機器名稱(在括號中)。如果我在本地機器上,最後一列將顯示我的控制台/顯示 ID。在我的機器上是(:0)。

警告 這僅適用於互動式外殼。

ssh ScottieH@RemoteServer who -m會產生意想不到的結果。

在我的 Red Hat 7 機器上,它出現錯誤。

YMMV

ssh 總是將SSH_CONNECTION遠端 shell 中的環境變數設置為包含客戶端和伺服器的主機和埠的值。

這也適用於非互動式 shell 和沒有 utmp/systemd/whatever 的機器(例如在您的路由器或相機上)。

ssh root@unq 'echo $SSH_CONNECTION'
192.168.38.152 35466 192.168.38.1 22

然後您可以對該地址進行反向主機查找:

ssh root@unq.und 'nslookup "${SSH_CONNECTION%% *}"'
...
Name:      192.168.38.152
Address 1: 192.168.38.152 bursku.und

引用自:https://unix.stackexchange.com/questions/613427