ssh:ログインシェルの代わりにリモートホストでコマンドを実行する

ssh:ログインシェルの代わりにリモートホストでコマンドを実行する

localhostで接続していremote-serverますremote-server

期待どおりに動作します。

ssh remote-server "hostname"
remote-server

混乱しています。リモートサーバーのホスト名ではなくローカルホスト名を返すのはなぜですか?

ssh remote-server "print $HOST"
localhost

ベストアンサー1

2番目のコードの例:

ssh remote-server "print $HOST"
localhost

偉大な人々として記録されるでしょう住宅検査診断ツールSC2029:

Bashは、エスケープされていない一重引用符引数をすべて拡張します。これは、問題のコードが次に関連していることを意味します。

SSHホスト「エコクライアントホスト名」

サーバーのホスト名ではなく、クライアントのホスト名を印刷します。

$HOSTNAMEで$をエスケープすると、文字通り送信され、サーバーで評価されます。

使用して

ssh host "print \$HOST"

または

ssh host 'print $HOST'

あなたはあなたをブロックすることができます地元の拡張ホストでシェルを実行しますが、シェルにホストremote-serverを拡張させます。

おすすめ記事