~/.ssh/rc ファイルを含むリモートサーバーがあります。サーバーにSSH接続するたびにファイルが実行され、リモートシェルに接続されます。通常それが私が望むものです。時々私はこれをしたくない。
~/.ssh/rcが実行されないようにsshを実行するときに提供できるオプションはありますか?
答え1
クライアントはこの操作を実行できません。これはセキュリティ機能です。~/.ssh/rc
ファイルは、クライアントがバイパスできない操作を実行できます(ただし、一般的な用途ではありません)。
ジョブをバイパスする最も確実な方法~/.ssh/rc
は、環境変数に依存するコードでジョブをラップし、クライアントがこの環境変数をサーバーに渡すことを可能にすることです(AcceptEnv
のディレクティブ/etc/sshd_config
)。
サーバー側でこれを行うもう1つの方法は次のとおりです。no-user-rc
パラメータでキーを使用する。
答え2
ssh
ドキュメントとドキュメントを少し見てから見ることができる唯一の方法は、sshd
このファイルを挿入することだけです。いいえSSHを変更して実行顧客これは、別のキーを使用してホストを認証することによって行われます。
~/.ssh/rc
ユーザーが使用できる特定のキーのファイルno-user-rc
オプションを設定して、実行を無効にできます。~/.ssh/authorized_keys
ファイルは通常次のようになります。
ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
これはsshd
、マニュアルで説明されているオプションで補完することができます。
no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
rc
その後、ファイルが実行されたときに別のキーを追加できます。
no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
ssh-ed25519 AAAASOMEDIFFERENTKEYSIGNATUREHERE myself@somehost
rc
ローカルでは、ファイルが実行されているかどうかに応じて、別のキーを使用して次の設定を使用して接続できます~/.ssh/config
。
Host myhost
Hostname theremote.host
User myself
IdentityFile %d/.ssh/id_ed25519
Host myhost-norc
Hostname theremote.host
User myself
IdentityFile %d/.ssh/id_ed25519-norc
ここで、調署名の署名は調署名の署名~/.ssh/id_ed25519-norc
と一致しますno-user-rc
。
かなり複雑に見えますが、正直なところ、このrc
ファイルの実行を回避する他の方法が見つかりません。別のオプションは、Gilesが提案したようにrc
、特定の環境変数に基づいて実行されるすべての操作をファイルがバイパスし、代わりにファイルが存在しない場合は通常呼び出すかの/etc/ssh/sshrc
ように呼び出しますrc
(sshd
ドキュメントに/etc/ssh/sshrc
存在しない場合は、次のように指示します。ドキュメントをxauth
参照してください。sshd
詳細情報)。