リモートホストにログインするたびに、現在のインタラクティブなSSHセッション内でコマンドを自動的に実行できるようにしたいと思います。
何かのようなもの
ssh user@remotehost [run do.sh]
ここで、do.sh
はいくつかのハウスキーピングタスクを実行してから、screen
セッションに再接続します(現在、ホストにログインした後、do.sh
を手動で実行しています)。
他のマシンからこのホストにログインし、そこからログインするときに.bashrc
を実行したくないので、do.sh
に追加したくないので、オプションにする必要があります。
あなたはこのようなことを試すことができます:
ssh server -t "do.sh; bash --login"
ここで提案されているとおり: https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login
または、公式のmanページで説明されているように、sshd_conf(または〜/ .ssh/config)で「LocalCommand」オプションを使用してみてください。 http://unixhelp.ed.ac.uk/CGI/man-cgi ?ssh + 1
パズルの一部:OpenSSHを想定して、ssh
クライアントは次の環境変数を設定します。
SSH_CONNECTION
接続のクライアント側とサーバー側を識別します。変数には、スペースで区切られた4つの値が含まれます。クライアントIPアドレス、クライアントポート番号、サーバーIPアドレス、サーバーポート番号。
したがって、この情報を使用して、接続元を見つけることができます。