a9b5bebab3
* Pass remote.sh to shell over stdin. * Pass docker.sh to shell over stdin. * Standardize SSH key management. * Update docker containers.
35 lines
1.1 KiB
Bash
35 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# Configure SSH keys.
|
|
|
|
ssh_public_key=#{ssh_public_key}
|
|
ssh_private_key=#{ssh_private_key}
|
|
ssh_key_type=#{ssh_key_type}
|
|
|
|
ssh_path="${HOME}/.ssh"
|
|
private_key_path="${ssh_path}/id_${ssh_key_type}"
|
|
|
|
if [ ! -f "${private_key_path}" ]; then
|
|
# write public/private ssh key pair
|
|
public_key_path="${private_key_path}.pub"
|
|
|
|
# shellcheck disable=SC2174
|
|
mkdir -m 0700 -p "${ssh_path}"
|
|
touch "${public_key_path}" "${private_key_path}"
|
|
chmod 0600 "${public_key_path}" "${private_key_path}"
|
|
echo "${ssh_public_key}" > "${public_key_path}"
|
|
echo "${ssh_private_key}" > "${private_key_path}"
|
|
|
|
# add public key to authorized_keys
|
|
authoried_keys_path="${HOME}/.ssh/authorized_keys"
|
|
|
|
# the existing file is overwritten to avoid conflicts (ex: RHEL on EC2 blocks root login)
|
|
cat "${public_key_path}" > "${authoried_keys_path}"
|
|
chmod 0600 "${authoried_keys_path}"
|
|
|
|
# add localhost's server keys to known_hosts
|
|
known_hosts_path="${HOME}/.ssh/known_hosts"
|
|
|
|
for key in /etc/ssh/ssh_host_*_key.pub; do
|
|
echo "localhost $(cat "${key}")" >> "${known_hosts_path}"
|
|
done
|
|
fi
|