pagemachine / authorized-keys
读取、编辑和写入 SSH authorized_keys 文件
2.2.0
2023-03-16 06:09 UTC
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^5.0
- ergebnis/composer-normalize: ^2.9
- mikey179/vfsstream: ^1.6
- php-parallel-lint/php-console-highlighter: ^1.0.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.3
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.2
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