
ログインにユーザー名、パスワード、証明書を必要としない SSH サーバーを何らかの方法で設定することは可能ですか? それが不可能な場合、すべての顧客に同じ公開キーを提供すると、各接続は個別に暗号化されますか? (つまり、ユーザー A はユーザー B の接続のペイロードを復号化できません)
ユーザー名とパスワードの入力を求める単一のプログラムへのアクセスを提供したいと思います。
ただし、暗号化は不可欠であり、ユーザーがお互いを覗き見できないようにする必要があります。
ありがとう
答え1
セッションを開くには常にユーザー名が必要なので、SSH の認証部分を削除することはできないと思いますが、空のパスワードを設定し、PermitEmptyPasswords
sshd 構成で yes に設定することはできます。
ただし、これは実際には安全ではないため、キー認証を使用する方が適切です。
顧客に公開鍵を渡すと、顧客はあなたの SSH サーバーではなく、顧客の SSH サーバーへの接続を許可できます。
顧客にあなたの SSH サーバーに接続してもらいたいのだと思います。この場合、顧客は公開鍵を渡す必要があり、あなたは接続を許可します。すべての顧客が同じ公開鍵を使用して SSH サーバーに接続した場合、すべての顧客が同じ秘密鍵を使用することになり、これは選択肢ではありません (秘密鍵を提供するのはあなたの役割ではなく、秘密鍵は共有すべきではありません)。
暗号化とスヌーピングに関しては、暗号化は公開/秘密キーではなくセッション キーで行われますが、セッション キーを交換するには、SSH は公開/秘密キーを使用します。
したがって、すべての顧客が同じ秘密キーを使用している場合、最初からセッションをスヌーピングするとセッションを復号化できますが、セッション キーの交換後にセッションをスヌーピングすると、セッションを復号化するのが極めて困難になります。
SSHの仕組みに関する良い記事http://www.eng.cam.ac.uk/help/jpmg/ssh/ssh-detail.html
答え2
少し遅いですが、/etc/passwd でシェルをそのプログラムに設定することで、ログイン時にユーザーに特定のプログラムを強制的に実行させることができます (どのような方法でも)。.sshrc ファイルを使用して sshd を使用する場合は、より複雑な方法があると思いますが、OpenSSH を使用しているとは想定していません。ただし、すべて man ファイルに記載されています。
答え3
秘密鍵は秘密何かを証明する必要がある場合、この場合のように、あなたは秘密を知っているこの場合は、秘密の SSH キーです。公開キーは「公開」されており、その意味では、何かを証明するために使用することはできません。
これは、決して複数のユーザーに同じ秘密鍵を渡さないでください膨大な数のセキュリティ ホールは、セキュリティ プロセスの負担を軽減しようとする試みから生じています。それを実現する安全な方法もあります。しかし、管理者であるあなたがその作業を行う必要があります。そうしないと、自動的にネットワークとそのユーザーが攻撃にさらされることになります。
「近道をしてはいけない」
答え4
ユーザー意思他のプロセスのメモリ空間にアクセスできるようになるため、お互いを監視できるようになります (任意のプログラムを実行できると仮定)。