
透過 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
。