ssh - 将现有的 ssh_authorized_keys 导入 puppet 资源

有没有办法将所有现有的 ssh key 从/root/.ssh/authorized_keys 自动导入 puppet?例子:

如果我在/root/.ssh/ssh_authorized_keys 中有以下内容:

ssh-rsa AAAAakljsehrkjysdfjkhasdkfhskjghg== userA@hostA
ssh-rsa AAAAajklrkljeykljrsyehkrjryekjdkj== userB@hostB

我想运行类似的东西:
puppet resource ssh_authorized_key

并获得以下输出:
ssh_authorized_key {'userA':
    ensure => present,
    key    => 'AAAAakljsehrkjysdfjkhasdkfhskjghg==',
    type   => 'ssh-rsa',
    name   => 'userA@hostA',
    user   => 'root',
}
ssh_authorized_key {'userB':
    ensure => present,
    key    => 'AAAAajklrkljeykljrsyehkrjryekjdkj==',
    type   => 'ssh-rsa',
    name   => 'userB@hostB',
    user   => 'root',
}

这有可能吗?

最佳答案

这可能有点矫枉过正,但你可以运行 blueprint并获取所需的部分,或者一个简单的 bash 脚本:

while read line; do 
    keytype=$(echo $line | awk '{print $1}'); 
    keystr=$(echo $line | awk '{print $2}'); 
    username=$(echo $line | awk '{print $3}');

    echo "ssh_authorized_key {'$(echo $username | awk -F'@' '{print $1}')':"; 
    echo "  ensure => present,"; 
    echo "  key => '$keystr',"; 
    echo "  type => '$keytype',"; 
    echo "  name => '$username',"; 
    echo "  user => '$(whoami)',"; 
    echo "}"; 
done < .ssh/authorized_keys

来源:http://shtuff.it/article/7/Generate_Puppet_ssh_authorized_keys_resource_from_existing_keys

https://stackoverflow.com/questions/14808513/

相关文章:

ssh - 如何找到在amazon-ec2中启动的实例的用户名?

ssh - docker run找不到名称标志参数

php - 使用 PHP SSH 进入机器

php - 设备的 ioctl 不合适

grails - 路由到webapp文件夹时,将默认渲染文件设置为grails 3中的index.h

grails - 验证标准无法使用

git - 如何在GitBlit中禁用SSH并仅使用HTTP和HTTPS

php - PHP Net_SSH2-exec()如何获取命令返回码

amazon-web-services - AWS EC2 - 为什么连接时我的 SSH 公钥不存在

json - JSON获取全数字