mirror of
https://github.com/webmin/webmin.git
synced 2026-02-07 16:02:14 +00:00
Updated edit_keys.cgi to support default keys in case there are no HostKey entries in the config file. It will search the same folder as the config file.
48 lines
1.4 KiB
Perl
Executable File
48 lines
1.4 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Show a page for manually editing host keys
|
|
# Only displays keys for now
|
|
|
|
use File::Basename;
|
|
require './sshd-lib.pl';
|
|
&ReadParse();
|
|
&ui_print_header(undef, $text{'keys_title'}, "");
|
|
|
|
# Work out and show the files
|
|
@files = &get_mlvalues($config{'sshd_config'}, "HostKey");
|
|
|
|
# If there are no HostKey entries assume default keys in use
|
|
|
|
if (scalar(@files) == 0) {
|
|
if (-r (dirname($config{'sshd_config'}) . '/ssh_host_rsa_key')) {
|
|
push(@files, (dirname($config{'sshd_config'}) . '/ssh_host_rsa_key'));
|
|
}
|
|
if (-r (dirname($config{'sshd_config'}) . '/ssh_host_dsa_key')) {
|
|
push(@files, (dirname($config{'sshd_config'}) . '/ssh_host_dsa_key'));
|
|
}
|
|
if (-r (dirname($config{'sshd_config'}) . '/ssh_host_key')) {
|
|
push(@files, (dirname($config{'sshd_config'}) . '/ssh_host_key'));
|
|
}
|
|
}
|
|
|
|
foreach $key (@files) {
|
|
$key = $key . ".pub";
|
|
}
|
|
|
|
$in{'file'} ||= $files[0];
|
|
&indexof($in{'file'}, @files) >= 0 || &error($text{'keys_none'});
|
|
print &ui_form_start("edit_keys.cgi");
|
|
print "<b>Key filename</b>\n";
|
|
print &ui_select("file", $in{'file'},
|
|
[ map { [ $_ ] } @files ]),"\n";
|
|
print &ui_submit('View');
|
|
print &ui_form_end();
|
|
|
|
# Show the file contents
|
|
print &ui_form_start("save_manual.cgi", "form-data");
|
|
print &ui_hidden("file", $in{'file'}),"\n";
|
|
$data = &read_file_contents($in{'file'});
|
|
print &ui_textarea("data", $data, 20, 80),"\n";
|
|
|
|
&ui_print_footer("", $text{'index_sharelist'});
|
|
|