リモートホストにログインするたびに、現在の対話型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アドレス、サーバーポート番号。
したがって、この情報を使用して理解できます。あなたの接続がどこから来るのか。