「他の」ユーザーがシェルアクセス(公開鍵ログイン)なしでsshdを介して自分のサーバーにプライベートバックアップを作成できるようにする

「他の」ユーザーがシェルアクセス(公開鍵ログイン)なしでsshdを介して自分のサーバーにプライベートバックアップを作成できるようにする

私は単に「もの」を学ぶために家にUbuntuサーバーを設定しました。少し誇張したのにSSDに空きスペースが残っていました。私のコンピュータにバックアップできるように、友達に少しスペースを与える予定です。彼は私にも同じ機会を与えます。利益! !

私のシステムの要件/設定は次のとおりです。

  • ユーザーはキーペアを使用してsshdを介してのみログインできます。これが私のシステムでSSHを設定する方法です。パスワードアクセスは許可されていません。

  • 追加のユーザーは、シェルアクセスを持っているか、どのような方法でも私のサーバーでコマンドを実行しないでください。

  • /mnt/coproにあるフォルダに対するsshdの書き込みおよび読み取り権限のみを付与したいと思います。彼はsshdを介してduplicatiを使用してバックアップを作成します。

通常、フォルダは(愚かな)ファイルサーバーとしてアクセスできるはずですが、SSHを介してキーペアを介してのみアクセスできます。

私はいくつかの調査をしましたが、全体的に満足のいく答えが見つからなかったか、機能するソリューションで見つかった答えを適切に組み合わせることができませんでした。

だから私の質問は次のようになります

  • シェルアクセスなしでユーザーを作成する方法
  • 選択したフォルダへのユーザーの読み取り/書き込みアクセスを許可するにはどうすればよいですか?
  • 特定のユーザーの秘密鍵をどこに保存しますか?

助けてくれてありがとう。

ベストアンサー1

私はあなたがSSHサーバーとしてOpenSSHを使用していると仮定します。私はこれがUbuntuのデフォルト値だと思います。

書類のコピー実際にはSFTPアクセスのみが必要であることを明確にすると、これは簡単になります。

  1. 最も重要なのは、ユーザーに一致するセクションまたはMatch UserセクションMatch Groupを設定することです(場合によっては、外部SFTPサーバーを使用することもできます。これは実際には任意のコマンドである可能性があります。特定の項目にも使用できます)。 )様々なリツイートもブロックしたい可能性が高いです。残念ながら、より多くを追加するには、SSHのアップグレードを見続ける必要があります。最後に、欲しいものを確認しました(一部はデフォルトでは「いいえ」です)。/etc/ssh/sshd_configForceCommandForceCommand internal-sftpgit
    AllowAgentForwarding no
    AllowTCPForwarding no
    AllowStreamLocalForwarding no
    PermitTTY no
    PermitTunnel no
    PermitUserEnvironment no
    PermitUserRC no
    X11Forwarding no
  1. まず、ファイルシステム権限から始めます。これはあなたの個人ファイルを保護し、$HOME他の人はあなたのコンテンツを読むことができないはずです。

    しかし、誰でも読むことができる場所がたくさんあります(しかし、ユーザーが読むことができるかどうかはあまり気にしません/bin/sh。もちろん、ユーザーはディストリビューションからダウンロードできます)。グローバルに書き込み可能なディレクトリもあります(たとえば/tmp、ChrootDirectoryを使用して両方のディレクトリを保護できますが、chrootディレクトリはrootが所有し、ユーザーが書き込めないようにする必要があります(そうしないと大きなセキュリティの問題になる可能性があります)。いいえ。これは許可されていません。したがって、1つがある場合はそれをChrootDirectory /mnt/copro設定し、内部でユーザーが所有するもの(0755 root:rootまたは同様のもの)を持つ必要があり/mnt/copro/dataます。いいえ。etcbinusrlib

  2. 最も簡単な方法は、認証キーファイルをユーザーのホームディレクトリ(~/.ssh/authorized_keys他のユーザーと同様)の通常の場所に配置することです。/mnt/copro可能であれば、制限されたユーザーが自分のホームディレクトリに書き込むことを許可しないことが最善であるため、このホームディレクトリは外部に配置する必要があります$HOME。必要に応じてブロックAuthorizedKeysFile内に代替位置を設定できますMatch

PS:Duplicatiは他のバックエンドをサポートしています。したがって、Apacheなどの設定に慣れている場合は、WebDAVの使用を提案したいかもしれません。あるいは、ストレージスペースが多く、S3互換インターフェースなどを提供することもできます。

おすすめ記事