Here is my simple script to setup shared SSH keys on Cluster. You can put this script called ssh-shared-keys.sh into /etc/skel/.bash_profile so that the new users have their keys shared between all the compute nodes.
#!/bin/bash
# Exit script on Error
set -e
# Check for SSH Directory
if [ ! -d ~/.ssh ]; then
mkdir -p ~/.ssh/
fi
# Check for existence of passphrase
if [ ! -f ~/.ssh/id_rsa.pub ]; then
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
echo "Execute ssh-keygen --[done]"
fi
# Check for existence of authorized_keys and append the shared ssh keys
if [ ! -f ~/.ssh/authorized_keys ]; then
touch ~/.ssh/authorized_keys
echo "Create ~/.ssh/authorized_keys --[done]"
chmod 700 ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
echo "Append the public keys id_rsa into authorized keys --[done]"
chmod 400 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/
fi
# Create user's ssh config it not exist
if [ ! -f ~/.ssh/config ]; then
touch ~/.ssh/config
echo "StrictHostKeyChecking no" > ~/.ssh/config
echo "StrictHostKeyChecking no --[done]"
chmod 644 ~/.ssh/config
fi
# Unset error on exit or it will affect after bash command :)
set +e
References: