コンソール接続でできることはすべてSSH接続で実行できますか?
つまり、システムを起動してSSHサーバーをインストールして構成した後、コンソールを使用せずにSSHを介してそのシステムと追加の対話を実行できますか(何らかの理由でSSHサーバーを使用できない場合を除く)。
答え1
はい。
以下はそのうちのいくつかです。
スーパーユーザーログイン
FreeBSDやOpenBSDなどのシステムでは、init
プログラムはファイルsecure
に表示されている端末へのシングルユーザーモードのユーザー#0ログインのみを許可します/etc/ttys
。そして、login
プログラム(FreeBSDのPAMモジュールを介してOpenBSDから直接)は、マルチsecure
ユーザーモードでこのフラグを適用します。
Debian と Ubuntu も同様の/etc/securetty
メカニズムを持っています。これらの両方で、コンソールとカーネル仮想ターミナル(注、必ずしもコンソールである必要はありません)はデフォルトでスーパーユーザーログインを許可します。
OpenBSDのSSHのデフォルト設定は、パスワードまたはキーボード対話型認証を使用するときにスーパーユーザーとしてログインを許可しないことです(ただし、公開鍵認証を使用する場合は許可します)。 FreeBSDのSSHのデフォルト設定は、スーパーユーザーログインをまったく許可しないことです。
フレームバッファ出力イベント/USB入力ルーチン
人々は、SSH接続を介してXトンネルを構築し、ターミナルデバイスを使用してプログラムと対話することができます。ただし、Linuxのイベントデバイスシステム、USB HIDデバイス、およびフレームバッファデバイスを介してI / Oを実行しようとするプログラムは、SSHでは実行できません。
追加読書
音
サウンドは通常SSH経由で送信されません。 LANを介してサウンドエミッションプログラムをPulseAudioサーバーとして手動で指定したり、リモートサウンドクライアントからローカルPulseAudioサーバーに手動でトンネリングしたりできます。ただし、まずすべてのサウンドがPulseAudioであるわけではありません。
追加読書
点字
BRLTTYなどのプログラムには、仮想端末デバイスの文字+属性セル配列への直接アクセスが必要です。サーバーにBRLTTYが設定されている場合、SSHログインセッションにアクセスして点字でマークすることはできませんが、カーネル仮想ターミナルログインセッションは表示できます。
追加読書
- ジョナサンデボインポラード(2014)。noshユーザー空間仮想端末とBRLTTYを組み合わせる。ソフトウェア。
- アクセシビリティ。 Debian Wiki。
緊急モードと救助モードの操作
ブート緊急モードまたは救助モードSSHサーバーを起動しないでください。どちらのモードも、SSHサーバーのようなネットワークサービスだけでなく、ネットワークサポートに対するあらゆる面倒な作業を開始しません。
予測不能なPolicyKitコンテンツ
PolicyKitの概念は次のとおりです。アクティブおよび非アクティブログインセッション。これは/etc/ttys
、システムの属性セット(on
、、、、)を「アクティブ」と「非アクティブ」の間の単一の真/偽secure
のスイッチに縮小しようとします。これは、SSHとその類似物が存在する世界には適していません。network
dialup
コンソールまたはカーネル仮想端末にログインするときにのみ「アクティブ」ログインセッションを持つことができます。 SSHを介したログインは、常に「非アクティブ」ログインセッションと見なされます。ソフトウェアの作成者とシステム管理者がアクティブおよび非アクティブのログインセッションで操作を実行するために異なる権限を付与できるため、動作に大きな違いが生じる可能性があります。
追加読書
- ローカル以外のユーザーに対してシステム管理者権限を有効にする - 「polkit」は正確にどのように機能しますか?
- https://askubuntu.com/questions/21586/
- ジェフレーン(2014-03-28)。 plainbox-secure-policyがsshで動作しない。バグ #1299201.発射台。 Ubuntu。
答え2
いいえ、ネットワークが切断されていない限り(または切断すると自動的にリセットされるため難しい)。コマンドは、本質的にどのインターフェイスを介して実行されるかは関係ありません。
ただし、SSHセッションはコンソールセッションよりも少ない権限を持つことができます。この場合、何かがあるかもしれません。可能原則としてSSHセッションを通じて行われますが、そうではありません認められた特定のSSHセッションまたは特定の構成で開かれたすべてのSSHセッション。
コンソールにログインすると、明らかにコンソール対話に関連するいくつかの権限が付与されます。伝統的に、これはエンドデバイス(キーボードとモニタ)と対話する権限があることを意味していました。最新のシステムでは、リムーバブルデバイスのマウント、その他の周辺機器(オーディオデバイスなど)へのアクセス、一時停止、または再起動などの追加のアクセス許可をコンソールログインで囲むことがよくあります。最新のLinuxシステムの使い方ポルキットこのため、コンソールツールキットまたは、systemdのログインを使用して、どのユーザーがアクティブなコンソールセッションを持っているかを追跡できます。
伝統的に、スーパーユーザー(ルート)はすべての権限を持っています。すべての権限はすべてを意味し、ルートがSSHを介してログインしたのかコンソールを介してログインしたのかは関係ありません。 SSH 経由で直接ルートログインを無効にするのが一般的ですが、これはシステム構成によって異なります。ほとんどのUnixシステムのデフォルト設定では、su
SSHセッションを介してrootアカウントにアクセスできますが、sudo
この機能は次の方法で無効にできます。
pam_securetty。
最新のUnixシステムはルートアカウントを制限できます。SELinux。強化されたシステムでは、SSHを介したルートセッションを許可できますが、コンソールログインには適用されないように制限できます。繰り返しますが、これはSELinuxポリシーなどの設定の問題かもしれません。