Ssh
在遠端 shell 中,我如何找出我從哪台電腦登錄到遠端電腦?
在遠端 shell 中,如何找到我登錄到遠端電腦的電腦的域名?
範例:我的本地機器是
mi.pona.com
. 在這台機器上我執行ssh toki@sina.pona.com
登錄到遠端機器
sina.pona.com
。在打開的外殼(在遠端機器上執行)我想找出我從哪台電腦登錄,所以我想得到結果“ mi.pona.com ”。有這個命令嗎?
在我的 Red Hat 7 機器上,我執行
who am i
orwho am I
或who -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