确定当前通过 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

相关内容