ssh-keygen - 从存储在 s3 中的私钥文件创建 public 密钥文件
ssh-keygen - create public key file from private key file stored in s3
我正在尝试将 public 密钥存储(附加)到一个文件 (~/.ssh/authorized_keys) 中,以获得实际上是私钥 (private-key.pem)存储在 s3 中,全部使用 bash 脚本。
正在使用文件检索 public 密钥:
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(public 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
看了其他相关问题,发现fifo或named pipes可以有权限,所以我试了一下,效果不错,希望对大家有帮助。
创建具有权限的命名管道(名称为 fifo 的管道)
mkfifo -m 600 fifo
运行 命令指向那个管道
curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys
一条指令
mkfifo -m 600 fifo && curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys
我正在尝试将 public 密钥存储(附加)到一个文件 (~/.ssh/authorized_keys) 中,以获得实际上是私钥 (private-key.pem)存储在 s3 中,全部使用 bash 脚本。
正在使用文件检索 public 密钥:
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(public 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
看了其他相关问题,发现fifo或named pipes可以有权限,所以我试了一下,效果不错,希望对大家有帮助。
创建具有权限的命名管道(名称为 fifo 的管道)
mkfifo -m 600 fifo
运行 命令指向那个管道
curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys
一条指令
mkfifo -m 600 fifo && curl -s https://bucket.s3.amazonaws.com/private-key.pem > fifo | ssh-keygen -y -f fifo >> ~/.ssh/authorized_keys