ssh_authorized_key
সংস্থান ব্যবহার করার পরিবর্তে , আমি একটি authorized_keys
সংস্থান সংজ্ঞা দেওয়ার সিদ্ধান্ত নিয়েছি , যা একক ব্যবহারকারীর জন্য সমস্ত এসএসএইচ কীগুলির একটি তালিকা গ্রহণ করে। সংজ্ঞায়িতটি দেখতে এরকম দেখাচ্ছে:
define authorized_keys ($sshkeys, $ensure = "present", $home = '') {
# This line allows default homedir based on $title variable.
# If $home is empty, the default is used.
$homedir = $home ? {'' => "/home/${title}", default => $home}
file {
"${homedir}/.ssh":
ensure => "directory",
owner => $title,
group => $title,
mode => 700,
require => User[$title];
"${homedir}/.ssh/authorized_keys":
ensure => $ensure,
owner => $ensure ? {'present' => $title, default => undef },
group => $ensure ? {'present' => $title, default => undef },
mode => 600,
require => File["${homedir}/.ssh"],
content => template("authorized_keys.erb");
}
}
$ssh_keys
প্যারামিটার সমস্ত প্রয়োজনীয় কীগুলি তালিকা হিসাবে নেয়। authorized_keys.erb
টেমপ্লেট ভালো দেখায়:
# NOTICE: This file is autogenerated by Puppet and should not be modified
<% sshkeys.each do |key| -%>
<%= key %>
<% end -%>
ব্যবহার
user {'mikko':
...
}
authorized_keys {'mikko':
sshkeys => [
'ssh-rsa XXXXXXYYYYYYYYYZZZZZZZZZ mikko@domain.tld',
'ssh-rsa XXXXXXZZZZZZZZZHHHHHHHHH mikko@other-host.tld',
],
}
শর্তসাপেক্ষে এসএসএইচ কী যুক্ত করা (উদাহরণস্বরূপ বিভিন্ন শ্রেণীর মধ্যে) পুতুলের +>
অপারেটরকে ধন্যবাদ :
Authorized_keys <| title == 'mikko' |> {
sshkeys +> 'ssh-rsa ASDFASDFASDFASDF mikko@somewhere-else.tld'
}
এই পদ্ধতির সাহায্যে, ব্যবহারকারীর কাছে কখনই কী থাকবে না যা পুতুলের কনফিগারেশনে স্পষ্টভাবে নির্দিষ্ট করা হয়নি। মূল স্ট্রিংটি ਅਧਿਕਾਰ্য_কিগুলিতে যেমন ব্যবহৃত হয় তেমনি বিকল্পগুলি এবং বিধিনিষেধ যুক্ত করা তুচ্ছ।
অন্যরা যদি এই পদ্ধতিটি সফলভাবে ব্যবহার করে থাকে তা শুনে আমি আনন্দিত হব!