s sh -keygen - создать файл ключа publi c из файла закрытого ключа, хранящегося в s3 - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь сохранить (добавить) ключ publi c к файлу (~ / .ssh / authorized_keys) для закрытого ключа (private-key.pem), который фактически хранится в s3, все с использованием bash script.

Получение ключа publi c с использованием файла:

ssh-keygen -y -f /path/to/private-key.pem

Вывод:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE

Затем вручную добавьте содержимое в файл dest, это нормально, но я хочу сделать это с помощью команды, извлекая файл, сохраненный в s3 (publi c url), и добавляя вывод содержимого в файл (~ / .ssh / authorized_keys).

Я попробовал это:

ssh-keygen -y -f /dev/stdin <<< `curl https://bucket.s3.amazonaws.com/private-key.pem` >> ~/.ssh/authorized_keys

Вывод:

Load key "/dev/stdin": invalid format

И это:

curl https://bucket.s3.amazonaws.com/private-key.pem | ssh-keygen -y -f /dev/stdin >> ~/.ssh/authorized_keys

Вывод:

Permissions 0660 for '/dev/stdin' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/dev/stdin": bad permissions

1 Ответ

0 голосов
/ 13 апреля 2020

Посмотрев другой связанный вопрос, обнаружил, что у fifo или именованных каналов могут быть разрешения, поэтому я попробовал это и сработал, как и ожидалось, надеюсь, это кому-нибудь поможет.

  1. создайте именованный канал с разрешением (труба с именем fifo)

    mkfifo -m 600 fifo
    
  2. команда запуска, указывающая, что труба

    curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys
    
  3. все в одной команде

    mkfifo -m 600 fifo && curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys
    
...