
.bashrc
SSH 経由でログインする場合、 の実行中に、接続しているホスト名を知りたいです。
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
。