lib/ohai/plugins/ssh_host_key.rb in ohai-6.24.2 vs lib/ohai/plugins/ssh_host_key.rb in ohai-7.0.0.rc.0
- old
+ new
@@ -14,60 +14,64 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
-provides "keys/ssh"
-require_plugin "keys"
+Ohai.plugin(:SSHHostKey) do
+ provides "keys/ssh"
+ depends "keys"
-keys[:ssh] = Mash.new
-
-def extract_keytype?(content)
- case content[0]
- when "ssh-dss"
- [ "dsa", nil ]
- when "ssh-rsa"
- [ "rsa", nil ]
- when /^ecdsa/
- [ "ecdsa", content[0] ]
- else
- [ nil, nil ]
+ def extract_keytype?(content)
+ case content[0]
+ when "ssh-dss"
+ [ "dsa", nil ]
+ when "ssh-rsa"
+ [ "rsa", nil ]
+ when /^ecdsa/
+ [ "ecdsa", content[0] ]
+ else
+ [ nil, nil ]
+ end
end
-end
-sshd_config = if File.exists?("/etc/ssh/sshd_config")
- "/etc/ssh/sshd_config"
- elsif File.exists?("/etc/sshd_config")
- # Darwin
- "/etc/sshd_config"
- else
- Ohai::Log.debug("Failed to find sshd configuration file")
- nil
- end
+ collect_data do
+ keys[:ssh] = Mash.new
-if sshd_config
- File.open(sshd_config) do |conf|
- conf.each_line do |line|
- if line.match(/^hostkey\s/i)
- pub_file = "#{line.split[1]}.pub"
- content = IO.read(pub_file).split
- key_type, key_subtype = extract_keytype?(content)
- keys[:ssh]["host_#{key_type}_public"] = content[1] unless key_type.nil?
- keys[:ssh]["host_#{key_type}_type"] = key_subtype unless key_subtype.nil?
+ sshd_config = if File.exists?("/etc/ssh/sshd_config")
+ "/etc/ssh/sshd_config"
+ elsif File.exists?("/etc/sshd_config")
+ # Darwin
+ "/etc/sshd_config"
+ else
+ Ohai::Log.debug("Failed to find sshd configuration file")
+ nil
+ end
+
+ if sshd_config
+ File.open(sshd_config) do |conf|
+ conf.each_line do |line|
+ if line.match(/^hostkey\s/i)
+ pub_file = "#{line.split[1]}.pub"
+ content = IO.read(pub_file).split
+ key_type, key_subtype = extract_keytype?(content)
+ keys[:ssh]["host_#{key_type}_public"] = content[1] unless key_type.nil?
+ keys[:ssh]["host_#{key_type}_type"] = key_subtype unless key_subtype.nil?
+ end
+ end
end
end
- end
-end
-if keys[:ssh][:host_dsa_public].nil? && File.exists?("/etc/ssh/ssh_host_dsa_key.pub")
- keys[:ssh][:host_dsa_public] = IO.read("/etc/ssh/ssh_host_dsa_key.pub").split[1]
-end
+ if keys[:ssh][:host_dsa_public].nil? && File.exists?("/etc/ssh/ssh_host_dsa_key.pub")
+ keys[:ssh][:host_dsa_public] = IO.read("/etc/ssh/ssh_host_dsa_key.pub").split[1]
+ end
-if keys[:ssh][:host_rsa_public].nil? && File.exists?("/etc/ssh/ssh_host_rsa_key.pub")
- keys[:ssh][:host_rsa_public] = IO.read("/etc/ssh/ssh_host_rsa_key.pub").split[1]
-end
+ if keys[:ssh][:host_rsa_public].nil? && File.exists?("/etc/ssh/ssh_host_rsa_key.pub")
+ keys[:ssh][:host_rsa_public] = IO.read("/etc/ssh/ssh_host_rsa_key.pub").split[1]
+ end
-if keys[:ssh][:host_ecdsa_public].nil? && File.exists?("/etc/ssh/ssh_host_ecdsa_key.pub")
- content = IO.read("/etc/ssh/ssh_host_ecdsa_key.pub")
- keys[:ssh][:host_ecdsa_public] = content.split[1]
- keys[:ssh][:host_ecdsa_type] = content.split[0]
+ if keys[:ssh][:host_ecdsa_public].nil? && File.exists?("/etc/ssh/ssh_host_ecdsa_key.pub")
+ content = IO.read("/etc/ssh/ssh_host_ecdsa_key.pub")
+ keys[:ssh][:host_ecdsa_public] = content.split[1]
+ keys[:ssh][:host_ecdsa_type] = content.split[0]
+ end
+ end
end