私は複数のサーバーを管理しているため、SSHを介してそのサーバーにアクセスする必要があることがよくあります。ログイン時にリモートサーバーでデフォルトのカスタムスクリプトを自動的に実行したいと思います。たとえば、いくつかのエイリアス、vim色、PS1などを設定します。
私は起動スクリプトですべてのサーバーを設定したくないので、私は自分のコンピュータにローカルに存在し、私がsshで接続しているすべてのサーバーでのみ実行したいと思います。
同様の質問がありますただし、sshはスクリプトの実行後にログアウトされます。ログイン状態を維持するにはどうすればよいですか?
この回答は非常に近いただし、新しいエントリは次bash -l
の環境変数セットを登録しないようですssh -t user@remote 'export PS1=myps1; bash -l'
。ここでは、リモート.bashrcのため、PS1は新しいプロンプトに設定されていません。
どうやってこれができますか?
ベストアンサー1
これはとても簡単です。
ssh [email protected] 'bash -s' < local_bash_script.sh
スクリプトを実行すると、local_bash_script.sh
ssh-sessionはすぐに閉じます。
直す。
SSHログイン後にリモートサーバーでいくつかの操作を実行するには、SSHrc
ファイルを作成します。作るリモートサーバーから rc
ユーザーディレクトリ.ssh
のファイル:
touch ~/.ssh/rc
お気に入りのテキストエディタを使用してファイルを開きますnano
。たとえば、次のようになります。
nano ~/.ssh/rc
スクリプトファイルの内容をコピーして貼り付けます。
#/bin/sh
date
whoami
uname -r
exit 0
スクリプトはログインするたびに実行されます(date
、、、whoami
をuname -r
ユーザーコマンドに置き換えます)。
~/.ssh/rc
ファイルがあるディレクトリrc
の所有者である明示的なユーザーに対してスクリプトが実行されます。rc
リモートサーバー上のすべてのユーザーに対してスクリプトを実行するには、別のグローバルsshrc
ファイルを作成します。
/etc/ssh/sshrc
それはすべてです。