summaryrefslogtreecommitdiff
path: root/databases/pgcluster/files/setup-sshkey.pl
blob: 11c3a034de1bc641adf3671235f4b4efd5d38296 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl -w
#
# $FreeBSD$

use strict;

my $base = "$ENV{HOME}/.ssh";
foreach (@ARGV) {
  my $dir = "$base/$_";
  system("mkdir -p $dir") == 0 or die;
  if (not -r "$dir/id_dsa.pub") {
    system("ssh-keygen -t dsa -N '' -C $ENV{USER}\@$_ -f $dir/id_dsa") == 0
      or die
  }
  system("ssh-keyscan -t dsa $_ >> $base/known_hosts") == 0 or die;
  system("sort $base/known_hosts | uniq > $base/tmp.$$") == 0 or die;
  system("mv $base/tmp.$$ $base/known_hosts") == 0 or die;
}
foreach (@ARGV) {
  my $dir = "$base/$_";
  system("cat $base/*/id_dsa.pub > $dir/authorized_keys") == 0 or die;
  system("cp $base/known_hosts $dir/known_hosts") == 0 or die;
}