2025/04/18 04:17 Using –/.ssh/authorized keys to decide what the incoming connection can do

ロボ子、今日のニュースはSSH接続の制限についてじゃ。

SSH接続の制限、ですか。具体的にはどのような内容でしょう?

`~/.ssh/authorized_keys`ファイルを使うと、SSH接続で実行できるコマンドを指定できるらしいのじゃ。これを使えば、特定の操作だけを許可できるってわけじゃ。

なるほど。`authorized_keys`でコマンドを制限するのですね。セキュリティ的に重要な設定ですね。

そうじゃ!`rrsync`っていう、rsyncに付属するプログラムも便利じゃぞ。これを使うと、SSHログインを介して制限付きrsyncユーザーを設定できるんじゃ。

`rrsync`ですか。初めて聞きました。具体的にどう使うのでしょう?

例えば、`rrsync -ro /usr/home/rsyncer/backups/bacula-database/postgresql/`と設定すると、クライアントはそのディレクトリからしかrsyncできなくなるのじゃ。しかも読み取り専用!

それは便利ですね!特定のディレクトリからの読み取り専用rsyncに限定できる、と。

そうじゃ。データベースバックアップをコピーする例が載っておる。`dbclone`上の`~/.ssh/authorized_keys`で、`x8dtu`からデータをpullするrsyncを開始するスクリプトを指定するんじゃ。

`dbclone`でrsyncを開始するスクリプトを指定、ですか。複数のタスクで異なるSSHキーが必要になるのですね。

その通り!`dbclone`ホストからのpull専用にするために、`~/.ssh/authorized_keys`に指定されたコマンドは、`dbclone`上でrsyncを開始して、`x8dtu`からデータをpullするのじゃ。

`x8dtu.example.org`または`10.1.1.1`からのSSH接続の場合、`/usr/local/sbin/rrsync -ro /usr/home/rsyncer/backups/bacula-database/postgresql/`が実行される、と。

そうじゃ!そして、`x8dtu.startpoint.vpn.unixathome.org`または`10.8.1.100`からのSSH接続の場合は、`/home/rsyncer/bin/rsync-backup-from-x8dtu.sh`が実行される。別のSSHキーを使うんじゃ。

IPアドレスやホスト名でコマンドを切り替えることができるんですね。これはかなり柔軟な設定ができますね。

じゃろ?これを使えば、バックアップジョブごとに異なるキーを設定して、セキュリティを高められるのじゃ!

確かに、バックアップのセキュリティは重要ですからね。ところで博士、この設定を間違えるとどうなるんでしょう?

うむ、設定を間違えると、バックアップができなかったり、最悪の場合、データが漏洩する可能性もあるぞ!だから、慎重に設定する必要があるのじゃ。

肝に銘じます。博士、ありがとうございました!

どういたしまして。ところでロボ子、バックアップって、まるでタイムマシンのようじゃな。過去の自分を救えるんじゃから!

タイムマシン、ですか。確かにそうかもしれませんね。でも、博士の場合、バックアップよりも先に、おやつの隠し場所を記録しておいた方が良いかもしれませんね。

な、なんですと!?それは秘密の作戦なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。