diff --git a/ssh-ca b/ssh-ca index 0b9b929edf45fb888b97a5bd32511249d8281bd5..5cc4cbe78f82c0077f1670cc50d23fee8a95a5dd 100755 --- a/ssh-ca +++ b/ssh-ca @@ -1,6 +1,7 @@ #!/bin/sh -e test $(which ssh-keygen) || \ (echo "Can't find ssh-keygen. Is OpenSSH installed properly?"; exit 1) +local key_types="dsa ecdsa ed25519 rsa" usage () { echo "Usage: $0 init|newuser|newhost" @@ -24,13 +25,21 @@ signhost () { newhost () { echo "Creating new host $1 keypair." - ssh-keygen -qf "hosts/$1" -P "" -C "$1" + mkdir -p "hosts/$1" + for type in "$key_types" + do + ssh-keygen -qf "hosts/$1/ssh_host_${type}_key" -P "" -C "$1" + done signhost "$1" } newuser () { echo "Creating new user $1 keypair." - ssh-keygen -qf "users/$1" -P "" -C "$1" + mkdir -p "users/$1" + for type in "$key_types" + do + ssh-keygen -qf "users/$1/id_${type}" -P "" -C "$1" + done signuser "$1" }