ログイン後、SSHに設定に従ってディレクトリを強制的に変更させます。

ログイン後、SSHに設定に従ってディレクトリを強制的に変更させます。

ssh作業ディレクトリを強制的に変更したり、~/.ssh/config他の設定ファイルを使用したりする方法はありますか?

さまざまな環境のサーバーがたくさんあります。各環境は特定のディレクトリにインストールされるため、ログイン後すぐにそのディレクトリに移動するのが非常に便利です。

残念ながら、時には同じサーバー上で複数の環境をホストすることがあります。

これがまさに構成ベースにする必要がある理由です。現在、各環境の構成に別々の項目があるためです。例:

Host env1
User me
Port 2222
# here directory should be /srv/project/env1
HostName 172.16.16.2

Host env2_test
User me
Port 2222
# here directory should be /srv/project/env2_test
HostName 172.16.16.2

Host env54
User me
Port 2225
# here directory should be /srv/project/env54
HostName 172.16.16.3

これを行うために使用できますが、ssh -t env54 'cd /srv/project/env54 ; bash'挿入するには毎回再入力する必要がありますalias

私は* nixメソッドが設定を介してこれを処理すると信じています。

ベストアンサー1

サーバー.profileまたはログイン時に実行されるすべての項目で:

if [ -n "$USE_DIR_A" ]; then
    cd dir_a
elif [ -n "$USE_DIR_B" ]; then
    cd dir_b
fi

その後、ローカルコンピュータに設定します。両方可変的な:

export USE_DIR_A=yes
export USE_DIR_B=yes

そして、.ssh/config次のように設定を指定してください。

Host env1
User me
Port 2222
# here directory should be /srv/project/env1
SendEnv USE_DIR_A
HostName 172.16.16.2

Host env2_test
User me
Port 2222
# here directory should be /srv/project/env2_test
SendEnv USE_DIR_B
HostName 172.16.16.2

もちろん、変数を送信し、その変数を各システムに必要なディレクトリに設定するssh設定を持つことができますが、これはユーザーが必要とするものではありません。

ただし、SSH接続の共有に注意してください。これは、後続の接続の開始時に実行されるスクリプトに影響を与える可能性があります。

おすすめ記事