確定目前透過 SSH 連線的主機的名稱

確定目前透過 SSH 連線的主機的名稱

透過 SSH 登入時,我想知道在執行期間.bashrc正在連線的主機的名稱。

Ubuntu Server 顯示提示:

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

……所以這個資訊可以在某處獲得。

我怎樣才能訪問它?

答案1

如果您輸入:

who

您將看到有關已登入使用者的資訊。除此之外,您還可以查看他們登入的主機。例如,現在我的筆記型電腦返回以下內容:

who -u
darent   tty6         2014-02-14 01:15 11:02       20339
darent   tty7         2014-02-14 23:15  antic      31827 (:0)
darent   pts/7        2014-02-14 23:14 00:46       30246 (helena.local)
darent   pts/1        2014-02-14 23:16   .          1466 (:0)
darent   pts/9        2014-02-14 23:19 00:25         302 (:0)

其中 helena.local 是我透過 ssh 連線的電腦。

答案2

ssh將環境變數設定$SSH_CONNECTION為包含客戶端 IP 位址、用戶端連接埠號碼、伺服器 IP 位址和伺服器連接埠號碼(以空格分隔)。

您可以使用

echo ${SSH_CONNECTION%% *}

取得客戶端的IP位址。若要取得 DNS 名稱,請使用類似host或 的內容dig -x

host ${SSH_CONNECTION%% *}

答案3

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

此行顯示先前登入的主機,而不是目前登入的主機。

who-方法對我有用。更好的:who -m

SSH_CONNECTION請注意,如果您啟動子進程(例如透過呼叫),則該變數就會遺失su

相關內容