Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将现有ssh_授权_密钥导入puppet ressource_Ssh_Puppet - Fatal编程技术网

将现有ssh_授权_密钥导入puppet ressource

将现有ssh_授权_密钥导入puppet ressource,ssh,puppet,Ssh,Puppet,有没有办法自动将所有现有ssh密钥从/root/.ssh/authorized_密钥导入puppet?例如: 如果我在/root/.ssh/ssh\u authorized\u密钥中有以下内容: ssh-rsa AAAAakljsehrkjysdfjkhasdkfhskjghg== userA@hostA ssh-rsa AAAAajklrkljeykljrsyehkrjryekjdkj== userB@hostB 我想运行类似以下内容: puppet resource ssh_authori

有没有办法自动将所有现有ssh密钥从/root/.ssh/authorized_密钥导入puppet?例如:

如果我在/root/.ssh/ssh\u authorized\u密钥中有以下内容:

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',
}

这有可能吗?

这可能有点过分,但您可以运行并获取所需的部分,或者一个简单的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
读行时
;做
keytype=$(echo$行| awk'{print$1}');
keystr=$(echo$行| awk'{print$2}');
用户名=$(echo$行| awk'{print$3}');
echo“ssh_authorized_key{'$(echo$username | awk-F'@'{print$1}'):”;
回显“确保=>存在”;
echo“key=>'$keystr',”;
echo“type=>'$keytype',”;
echo“name=>'$username',”;
echo“user=>”$(whoami)”;
回声“}”;
完成<.ssh/授权密钥

来源:

这可能有点过分,但您可以运行并获取所需的部分,或者使用一个简单的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
读行时
;做
keytype=$(echo$行| awk'{print$1}');
keystr=$(echo$行| awk'{print$2}');
用户名=$(echo$行| awk'{print$3}');
echo“ssh_authorized_key{'$(echo$username | awk-F'@'{print$1}'):”;
回显“确保=>存在”;
echo“key=>'$keystr',”;
echo“type=>'$keytype',”;
echo“name=>'$username',”;
echo“user=>”$(whoami)”;
回声“}”;
完成<.ssh/授权密钥
资料来源: