~/.my_custom_bashrc
など、各リモート マシンにファイルをアップロードします。 、カスタム bash
で 構成 (この場合は PS1=...
) 次に ssh
を起動します と:
ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"
bash
を簡単に使用できます 読みやすくするためのラッパーとして機能します。
PS1
だけを送信したい場合 変数であり、'
が含まれていません (一重引用符)、試してください:
ssh targethost -t "PS1='$PS1'; exec bash"
ローカル .bashrc
PS1
を上書きする可能性があります ただし (これを指摘してくれた Dennis Williamson に感謝します)。
ssh 経由で環境変数を送信する方法はありますが、通常はサーバー構成で無効になっています。 PermitUserEnvironment
の場合 ディレクティブがサーバー構成で有効になっていて、各ユーザーが独自のキー ペアを持っている場合 (そう、運が悪いかもしれません)、 environment="PS1=…"
を追加できます ~/.ssh/authorized_keys
の行まで あなたのキーに対応します。
共有ユーザー アカウントで独自の構成を維持したい場合は、独自の構成ファイル ディレクトリを作成し、HOME
を設定できます。 そのディレクトリを指す環境変数
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
mrstatic.home
にシンボリック リンクを作成する 他のユーザーとファイルを共有する場合、親ディレクトリ内の対応するエントリを指すディレクトリ。
次に、
でログインします。ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
リモート .profile
を変更する場合 (または他の初期化ファイル)、おそらく設定を自動化できます。多くのサイトで LC_*
が許可されています 環境変数 (通常はロケール設定に使用されます)。これらの両方の条件が満たされている場合、実際にはロケールに使用されていない変数を設定できます (例:LC_USER
)。 、クライアント側で、サーバー .profile
でテストします .
(もちろん共有アカウントは悪い考えですが、あなたがその状況を変える立場にないかもしれないことは承知しています。)
ssh -t [email protected] "remote='$PS1' bash -i"
次に、プロンプトで:
PS1=$remote