pagemachine/authorized-keys

读取、编辑和写入 SSH authorized_keys 文件

2.2.0 2023-03-16 06:09 UTC

This package is auto-updated.

Last update: 2024-09-14 12:44:35 UTC


README

读取、编辑和写入 SSH authorized_keys 文件。

安装

composer require pagemachine/authorized-keys

使用方法

要访问 authorized_keys 文件,必须创建一个 Pagemachine\AuthorizedKeys\AuthorizedKeys 实例,可以直接将文件内容传递给构造函数或使用静态方法 fromFile()

$path = '/home/foo/.ssh/authorized_keys';
$authorizedKeys = AuthorizedKeys::fromFile($path);

您可以轻松迭代文件中的所有密钥,注释和空行将被跳过

foreach ($authorizedKeys as $key) {
    // Do something with $key
}

要添加密钥,创建一个 Pagemachine\AuthorizedKeys\PublicKey 实例并将其添加到文件中

// ... load $authorizedKeys ...
$key = new PublicKey('ssh-rsa AAA...');
$authorizedKeys->addKey($key);

请注意,每个密钥只会添加一次,如果再次添加,则只更新其选项、类型和注释。因此,在任何情况下调用此方法都是安全的,以确保密钥存在。

要删除密钥,将其包装在 PublicKey 中并从文件中删除

// ... load $authorizedKeys ...
$key = new PublicKey('ssh-rsa AAA...');
$authorizedKeys->removeKey($key);

最后,将文件写回,注释和空行将保持不变

$authorizedKeys->toFile($path);

文件的权限将更改为 0600,即只有所有者可读和可写,其他人不可读。

测试

所有测试都可以使用随附的 Docker Compose 定义执行

docker-compose run --rm app composer build