SFTPへの一時SSHアクセス

SFTPへの一時SSHアクセス

ユーザーグループに共有ファイルをホストするホームサーバーがあります。新しいユーザーを追加するとき(以前は)「SFTPのみ」グループに属するユーザーアカウントを設定しました。このグループはそのユーザーを共有ディレクトリにルート化します(sshd_configを使用)。秘密鍵認証用のauthorized_keysファイルを含む、自分だけが書き込むことができる個人用フォルダを作成します。ユーザー生成プロセスの一環として、サーバーに公開鍵と秘密鍵のペアを作成し、公開鍵をサーバー上のAuthorized_keysファイルに書き込み、秘密鍵を電子メールで送信します(有用な指示を含むウェルカムメッセージと共に)。情報)接続できます。

これにより、秘密鍵が電子メールで送信され、管理者としてコピーがあり、ユーザーを偽装することができるため、鍵の使用目的が失われることに気づきました。この場合、セキュリティは特に重要ではありませんが、正しく実行したいと思っており、この質問と提供された回答がこの方法でセキュリティを向上させる必要がある他の人に役立つことを願っています。

私の理想的な解決策は、以前のアプローチに従って電子メールを介してユーザーに秘密鍵を提供することです。秘密鍵は「X」期間(おそらく数日)後に期限切れになり、鍵を使用できなくなります。この間、ユーザーは自分が提供した公開/秘密鍵を交換する必要があります。キーが自動的に期限切れになるためです。これにより、次のことを行わずに他のユーザーがアクセスできるユーザーアカウントを簡単に設定できます。

  • SSHによるパスワード認証の許可(これにはパスワードを提供し、そのパスワードを変更するためのシェルアクセス権も付与する必要があります)
  • リクエストの公開鍵を事前に提供してください(これにより、ユーザーが参加するのを防ぎ、プロセスを自動化するのが困難になります)。
  • ただ私がやっていることを続けてください。

その後、ユーザーは自分の秘密鍵/公開鍵セットを取得し、authorized_keysファイルの内容を自分の公開鍵に置き換えることができます。

私は偶然偶然発見したこれこの記事では、署名付き公開鍵を使用してSSHを介して一時アクセスを提供する方法について説明します。私はこの問題を調査するのに多くの時間を費やしましたが、それはうまくいきませんでしたが、重要な概念であるクライアント(ユーザー)に認証された公開鍵を提供することが何であるかを理解していませんでした。公開鍵を使用してログイン/認証プロセスを完了する方法を理解できませんか?ほとんどのガイドでは、この部分について説明し、ユーザーが「ログイン」するための公開鍵を提供することを説明し、これ以上詳しく説明しません。 SFTPではなくSSHを介してしか実行できませんか?たとえば、filezillaで認証するときに秘密鍵は提供できますが、公開鍵は提供できません。さらなる検索によると、このアプローチ(509x??)にはクライアント側の設定が必要であり(そしてエンタープライズソリューションに近い)、私が探しているものではないかもしれません(ほとんどのユーザーにとっては複雑すぎるかもしれません)。 。

私の問題に対する簡単な解決策はありますか?重要なステップを逃したか、何かを誤解しましたか?あなたが提供できる助けに感謝します。

ベストアンサー1

一時的な OpenSSH 証明書も、お客様のニーズに合わせて推奨されるソリューションです。私はSFTPを直接試していませんでした。

主な目的は、SSH-CAの秘密鍵を使用してユーザーの公開鍵に署名し、より多くのメタデータ(有効期間など)を追加することです。

次に、SSH-CAの公開鍵をSFTPサーバーに保存し、configディレクティブを使用してファイルを参照してくださいTrustedUserCAKeys。 SSH-CA の公開鍵を使用して、サーバーはログイン中にユーザーの OpenSSH 証明書を確認します。認証キーをサーバーに配布し、有効期間が過ぎたら削除する必要はありません。

おすすめ記事