07cf7fedfe
...otherwise 'gitolite help' was getting too confusing, mixing up stuff that users should not be running directly (even on the server) ---- implementation notes: those who are worried about the '../triggers/' in various parts of the code here, remember you can only do that from a command line on the server. Remote users can only use commands that have been explicitly listed in the COMMANDS hash in the rc file. This means they can't even access other commands in the same directory as, say, the 'info' command, so a '../' is definitely not going to work.
78 lines
2.6 KiB
Perl
Executable file
78 lines
2.6 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
use strict;
|
|
use warnings;
|
|
|
|
# this is hardcoded; change it if needed
|
|
use lib "src";
|
|
use Gitolite::Test;
|
|
|
|
# testing the (separate) authkeys handler
|
|
# ----------------------------------------------------------------------
|
|
|
|
$ENV{GL_BINDIR} = "$ENV{PWD}/src";
|
|
|
|
my $ak = "$ENV{HOME}/.ssh/authorized_keys";
|
|
mkdir("$ENV{HOME}/.ssh", 0700) if not -d "$ENV{HOME}/.ssh";
|
|
my $kd = `gitolite query-rc -n GL_ADMIN_BASE` . "/keydir";
|
|
|
|
try "plan 49";
|
|
|
|
my $pgm = "gitolite ../triggers/post-compile/ssh-authkeys";
|
|
|
|
try "
|
|
# prep
|
|
rm -rf $ak; ok
|
|
|
|
$pgm; ok
|
|
mkdir $kd; ok
|
|
cd $kd; ok
|
|
$pgm; ok; /authorized_keys missing/
|
|
/creating/
|
|
wc < $ak; ok; /0 *0 *0/
|
|
# some gl keys
|
|
ssh-keygen -N '' -q -f alice -C alice
|
|
ssh-keygen -N '' -q -f bob -C bob
|
|
ssh-keygen -N '' -q -f carol -C carol
|
|
ssh-keygen -N '' -q -f dave -C dave
|
|
ssh-keygen -N '' -q -f eve -C eve
|
|
rm alice bob carol dave eve
|
|
ls -a; ok; /alice.pub/; /bob.pub/; /carol.pub/; /dave.pub/; /eve.pub/
|
|
$pgm; ok;
|
|
wc < $ak; ok; /^ *7 .*/;
|
|
grep gitolite $ak; ok; /start/
|
|
/end/
|
|
|
|
# some normal keys
|
|
mv alice.pub $ak; ok
|
|
cat carol.pub >> $ak; ok
|
|
$pgm; ok; /carol.pub duplicates.*non-gitolite key/
|
|
wc < $ak; ok; /^ *8 .*/;
|
|
|
|
# moving normal keys up
|
|
mv dave.pub dave
|
|
$pgm; ok
|
|
cat dave >> $ak; ok
|
|
grep -n dave $ak; ok; /8:ssh-rsa/
|
|
mv dave dave.pub
|
|
$pgm; ok; /carol.pub duplicates.*non-gitolite key/
|
|
/dave.pub duplicates.*non-gitolite key/
|
|
grep -n dave $ak; ok; /3:ssh-rsa/
|
|
|
|
# a bad key
|
|
ls -al > bad.pub
|
|
$pgm; !ok; /fingerprinting failed for keydir/bad.pub/
|
|
wc < $ak; ok; /^ *9 .*/;
|
|
# a good key doesn't get added
|
|
ssh-keygen -N '' -q -f good
|
|
$pgm; !ok; /fingerprinting failed for keydir/bad.pub/
|
|
wc < $ak; ok; /^ *9 .*/;
|
|
# till the bad key is removed
|
|
rm bad.pub
|
|
$pgm; ok;
|
|
wc < $ak; ok; /^ *10 .*/;
|
|
|
|
# duplicate gl key
|
|
cp bob.pub robert.pub
|
|
$pgm; ok; /robert.pub duplicates.*bob.pub/
|
|
";
|