Как добавить / заменить команду в конец открытого ключа ssh из скрипта? - PullRequest
0 голосов
/ 15 марта 2019

При ограничении того, к каким командам открытый ключ ssh может предоставить доступ, можно добавить command="something" в конце открытого ключа ssh в .ssh/authorized_keys.

В моем случае я хочу написать сценарий Bash, который создает репозитории Borg , и каждый открытый ключ должен иметь ограничение, такое как

command="cd /home/backup/repos/<client fqdn>;
         borg serve --restrict-to-path /home/backup/repos/<client fqdn>",
         restrict <keytype> <key> <host>

Вопрос

Есть ли официальный способ сделать это вместо написания однострочного awk или sed?

Или есть просто решение awk или sed, которое настолько красиво, что нет необходимости в официальном поддерживаемом способе?

1 Ответ

1 голос
/ 15 марта 2019
#!/usr/bin/perl

use File::Slurp;
my $fqdn = $ARGV[0];
my $k = read_file("$ARGV[1]");
my @m = split / /, $k;
my $c = 'command="cd /tank/borg/repos/FQDN; borg serve --restrict-to-path /tank/borg/repos/FQDN",restrict TYPE KEY';

$c =~ s/FQDN/$fqdn/g;
$c =~ s/TYPE/$m[0]/g;
$c =~ s/KEY/$m[1]/g;

print $c;

Принудительные команды находятся в файле первыми, а не последними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...