対話型SSHを使用してリモートホストでコマンドを実行する(条件付き)

対話型SSHを使用してリモートホストでコマンドを実行する(条件付き)

リモートホストにログインするたびに、現在の対話型SSHセッション内でコマンドを自動的に実行できるようにしたいです。

それはまるで

ssh user@remotehost [run do.sh]

do.shいくつかの管理タスクを実行してからscreenセッションに再接続する場所です(現在はdo.shホ​​ストにログインして手動で実行します)。

別のコンピュータでこのホストにログインしているため、追加したくないので、そこからログインしたときに実行したく.bashrcないので、オプションです。do.sh

答え1

次のように試すことができます。

ssh server -t "do.sh; bash --login"

ここに提案されているように:https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login

または、公式マニュアルページの説明に従って、sshd_conf(または〜/ .ssh / config)で "LocalCommand"オプションを試すこともできます。http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1

答え2

ジレンマ1:OpenSSHが使用されていると仮定すると、クライアントはssh次の環境変数を設定します。

SSH_CONNECTION 接続のクライアント側とサーバー側を識別します。この変数には、スペースで区切られた4つの値が含まれています。クライアントIPアドレス、クライアントポート番号、サーバーIPアドレス、サーバーポート番号。

したがって、この情報を使用して理解できます。あなたの接続がどこから来るのか

関連情報