.ssh/rc ファイルを無視しますか?

.ssh/rc ファイルを無視しますか?

~/.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ように呼び出しますrcsshdドキュメントに/etc/ssh/sshrc存在しない場合は、次のように指示します。ドキュメントをxauth参照してください。sshd詳細情報)。

関連情報