NAME
pki.pl - Public Key Infrastructure Configuration
SYNOPSIS
./pki.pl -h
./pki.pl [-v] -c host_1,host_2,...,host_n
./pki.pl [-v] [-s 'ssh-keygen command'] [-k 'ssh-keygen arguments] [-p passphrase] [-t type] [-b bits] [-f key pair filename]
[-g configuration filename] -c host_1,host_2,...,host_n [-c host1,host2,...,host_n]
DESCRIPTION
This script allows the generation of public/private key pairs, using the ssh-keygen command. Generated public key is copied to a list of remote machines. Specifically, the public key is added, if not exist, in the file $HOME/.ssh/authorized_keys of each remote machine.
The basic execution of the command is as follows:
./pki.pl [-v] -c host_1,host_2,...host_n
In this case, a public/private key pair is generated in the local directory $HOME/.ssh/, using the ssh-keygen command, which must be located in some directory included in $PATH. The filenames of the generated public and private keys are grid_cluster_rsa.pub and grid_cluster_rsa, respectively.
By default, generated keys have the following characteristics:
Type: RSA
Number of bits: 2048
No passphrase
Once the public/private key pair has been generated, the public key is copied to remote machines specified by the option -c. This option can be used several times to specify sets of machines with the same password to login. By this way, the copy process of the public key to remote machines is easier.
Each host specified with the option -c, must be configured in a configuration file (man ssh_config). By default, the configuration file is $HOME/.ssh/config. The basic syntax which this script needs is the following:
Host host_1 HostName myHost1.mydomain.com User myUser
Host host_2 HostName myHost2.mydomain.com User anotherUser . . . Host host_n HostName myHostn.mydomain.com User myUser
The behaviour of the script can be modified by the different supported options. These options are exposed in the following section.
OPTIONS
The options allowed by this script can take the same values of the ssh-keygen command (execute man ssh-keygen from shell for more information). The allowed options are the next ones:
-h Show the script help.
-v Verbose mode.
-s ssh-keygen command Provide the ssh-keygen command. By default, 'ssh-keygen'.
-k ssh-keygen string Provide an arguments string which is passed to the ssh-keygen command.
-p passphrase Provide a passphrase. By default, no passphrase is used.
-t type Specify type of key to create. By default, 'RSA' type is specified.
-b bits Number of bits in the key to create. By default, 2048 bits are used.
-f key pair filename Filename of the key file. By default, $HOME/.ssh/grid_cluster_rsa.
-g configuration filename Filename of the configuration file. By default, $HOME/.ssh/config.
-c host_1, host_2, ..., host_n Specify a set of machines where the public key has to be installed. This option can be used several times to specify sets of machines which need the same password to login.
DEPENDENCIES
This script requires the following modules and libraries:
GetOpt::Long module by Johan Vromans
File::Temp module by Tim Jenness
Term::Prompt module by Matthew O. Persico
sshpasswd
command must be installed. See http://sourceforge.net/projects/sshpass/The program assumes an Open SSH installation
AUTHORS
Eduardo Segredo Gonzalez <esegredo@ull.es> and Casiano Rodriguez Leon <casiano@ull.es>
AKNOWLEDGEMENTS
This work has been supported by the EC (FEDER) and the Spanish Ministry of Science and Innovation inside the 'Plan Nacional de I+D+i' with the contract number TIN2008-06491-C04-02.
Also, it has been supported by the Canary Government project number PI2007/015.
The work of Eduardo Segredo was funded by grant FPU-AP2009-0457.
COPYRIGHT AND LICENSE
Copyright (C) 2010 by Eduardo Segredo Gonzalez and Casiano Rodriguez Leon. All rights reserved.
This software is free; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.12.2 or, at your option, any later version of Perl 5 you may have available.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.