~/.profilesshまたはputtyを使用してリモートLinuxサーバーにログインする際の実行をバイパスまたは防止する方法はありますか?
~/.profilesshまたはputtyを使用してリモートLinuxサーバーにログインする際の実行をバイパスまたは防止する方法はありますか?
回答:
あなたはすべてのログインスクリプトを無効にするために探している場合は、使用することができます--noprofile無効にするフラグを/etc/profile、~/.profileなど、および--norc無効にする~/.bashrcので、のように:
$ ssh 127.0.0.1 "bash --noprofile --norc"利用可能な場合は、代替シェルを起動することもできます。私はで台無しにした後、これを使用する必要がありましたchsh:
$ ssh 127.0.0.1 shこれにより、空のシェル(プロンプトなし)にドロップされる可能性が高いので、動作lsするように確認してください。
ターゲットマシンがbashシェルにある場合:
user@host:/$ ssh hostname "bash --noprofile"
または、使用したい別のプロファイルがある場合
user@host:/$ ssh hostname "bash --noprofile; source ~/.other_profile"
他の人が述べたように、接続を開始するときにフラグを指定してbashを実行--noprofileすると動作しますが、別のシェルを使用している場合、これはオプションである場合とそうでない場合があります。
1つの代替方法は、プロファイルスクリプトにSSH接続自体を検出させ、それに応じて動作させることです。通常、SSH接続は多くの環境変数を設定するため、これは簡単に確認できます。プロファイルの先頭に次のような行を追加するだけで十分です。
if [ "$SSH_CONNECTION" != "" ]; then
  echo Logging in with ssh
  return
else
  echo Logging in with something that is not ssh
fi
# rest of your profile goes here
return場合は、スクリプトの残りの部分をスキップします$SSH_CONNECTIONSSH接続が開始されるたびに正常に作成される環境変数が設定されているが、。それ以外の場合、プロファイルは通常のように実行されます。
これは、影響を受けるプロファイルスクリプトのみをスキップすることに注意してください。/etc/profile同様に変更しない限り、他のすべてのプロファイルスクリプト(例:)は引き続き処理されます。