From 55d19e4676de668970d2ee0796d1b29a5b27d168 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Sun, 29 Nov 2015 19:27:36 +0200 Subject: [PATCH] Initial implementation, further testing is needed. --- .gitignore | 3 +++ Makefile | 6 ++++-- ssh-ca | 22 ++++++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index eb9b1f6..4f2b5d7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ *~ *.swp *.swo +CA* +users/ +hosts/ diff --git a/Makefile b/Makefile index 566d81e..99bd3d8 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,9 @@ install: chmod 755 /usr/local/bin/ssh-ca clean: - rm -rf CA CA.pub + rm -rf CA CA.pub users hosts test: clean - echo Not implemented. + ./ssh-ca init + ./ssh-ca newuser john + ./ssh-ca newhost www diff --git a/ssh-ca b/ssh-ca index 620e52e..0b9b929 100755 --- a/ssh-ca +++ b/ssh-ca @@ -7,20 +7,31 @@ usage () { } init () { + echo Initializing new CA. mkdir -p hosts users - ssh-keygen -qf CA -P /dev/null + ssh-keygen -qf CA -P "" -C ssh-ca } signuser () { - echo Not implemented. + echo "Signing user $1 key." + ssh-keygen -s CA -I "$1" -n "$1" "users/$1.pub" } signhost () { - echo Not implemented. + echo "Signing host $1 key." + ssh-keygen -s CA -I "$1" -h -n "$1" "hosts/$1.pub" } newhost () { - echo Not implemented. + echo "Creating new host $1 keypair." + ssh-keygen -qf "hosts/$1" -P "" -C "$1" + signhost "$1" +} + +newuser () { + echo "Creating new user $1 keypair." + ssh-keygen -qf "users/$1" -P "" -C "$1" + signuser "$1" } if [ $# -lt 1 ] @@ -42,6 +53,9 @@ case "$1" in newhost) newhost "$2" ;; + newuser) + newuser "$2" + ;; *) usage exit 1 -- GitLab