]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/Tools.pm
sort keymap array
[pve-common.git] / src / PVE / Tools.pm
index 6627210566e3d5ed3d909afdb46e97176833d49f..8c7f3733f80aa0c0338a09c6d9d314122138a342 100644 (file)
@@ -678,7 +678,7 @@ my $keymaphash =  {
 };
 
 my $kvmkeymaparray = [];
-foreach my $lc (keys %$keymaphash) {
+foreach my $lc (sort keys %$keymaphash) {
     push @$kvmkeymaparray, $keymaphash->{$lc}->[1];
 }
 
@@ -1307,4 +1307,19 @@ sub tempfile_contents {
     return ("/proc/$$/fd/".$fh->fileno, $fh);
 }
 
+sub validate_ssh_public_keys {
+    my ($raw) = @_;
+    my @lines = split(/\n/, $raw);
+
+    foreach my $line (@lines) {
+       next if $line =~ m/^\s*$/;
+       eval {
+           my ($filename, $handle) = tempfile_contents($line);
+           run_command(["ssh-keygen", "-l", "-f", $filename],
+                       outfunc => sub {}, errfunc => sub {});
+       };
+       die "SSH public key validation error\n" if $@;
+    }
+}
+
 1;