Move testnet ssh key (#5770)

* Factor out hardcoded testnet ssh key path

* Build/create test net ssh key path

* Rename testnet ssh dir

* Give testnetSSHDir a more generic name

* shellcheck

* favor hardcoded paths over `paths.sh`

* Put instance-startup-complete stamp in the scratch dir as well

* Rename `/solana` > `/solana-scratch`
This commit is contained in:
Trent Nelson
2019-09-03 18:51:16 -06:00
committed by GitHub
parent 62f6a78ccd
commit 8362b408d9
3 changed files with 16 additions and 17 deletions

View File

@ -387,8 +387,8 @@ EOF
set -o pipefail set -o pipefail
for i in $(seq 1 60); do for i in $(seq 1 60); do
set -x set -x
cloud_FetchFile "$nodeName" "$nodeIp" /solana-id_ecdsa "$sshPrivateKey" "$nodeZone" && cloud_FetchFile "$nodeName" "$nodeIp" /solana-scratch/id_ecdsa "$sshPrivateKey" "$nodeZone" &&
cloud_FetchFile "$nodeName" "$nodeIp" /solana-id_ecdsa.pub "$sshPrivateKey.pub" "$nodeZone" && cloud_FetchFile "$nodeName" "$nodeIp" /solana-scratch/id_ecdsa.pub "$sshPrivateKey.pub" "$nodeZone" &&
break break
set +x set +x
@ -428,7 +428,7 @@ EOF
for i in $(seq 1 60); do for i in $(seq 1 60); do
( (
set -x set -x
timeout --preserve-status --foreground 20s ssh "${sshOptions[@]}" "$publicIp" "ls -l /.instance-startup-complete" timeout --preserve-status --foreground 20s ssh "${sshOptions[@]}" "$publicIp" "ls -l /solana-scratch/.instance-startup-complete"
) )
ret=$? ret=$?
if [[ $ret -eq 0 ]]; then if [[ $ret -eq 0 ]]; then
@ -607,21 +607,22 @@ cat > /etc/motd <<EOM
$ sudo cat /var/log/syslog | egrep \\(startup-script\\|cloud-init\) $ sudo cat /var/log/syslog | egrep \\(startup-script\\|cloud-init\)
To block until setup is complete, run: To block until setup is complete, run:
$ until [[ -f /.instance-startup-complete ]]; do sleep 1; done $ until [[ -f /solana-scratch/.instance-startup-complete ]]; do sleep 1; done
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$(creationInfo) $(creationInfo)
EOM EOM
# Place the generated private key at /solana-id_ecdsa so it's retrievable by anybody # Place the generated private key at /solana-scratch/id_ecdsa so it's retrievable by anybody
# who is able to log into this machine # who is able to log into this machine
cat > /solana-id_ecdsa <<EOK mkdir -p -m 0777 "/solana-scratch"
cat > /solana-scratch/id_ecdsa <<EOK
$(cat "$sshPrivateKey") $(cat "$sshPrivateKey")
EOK EOK
cat > /solana-id_ecdsa.pub <<EOK cat > /solana-scratch/id_ecdsa.pub <<EOK
$(cat "$sshPrivateKey.pub") $(cat "$sshPrivateKey.pub")
EOK EOK
chmod 444 /solana-id_ecdsa chmod 444 /solana-scratch/id_ecdsa
USER=\$(id -un) USER=\$(id -un)
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
@ -657,7 +658,7 @@ $(printNetworkInfo)
$(creationInfo) $(creationInfo)
EOM EOM
touch /.instance-startup-complete touch /solana-scratch/.instance-startup-complete
EOF EOF

View File

@ -6,8 +6,6 @@ set -ex
[[ -d /home/solana/.ssh ]] || exit 1 [[ -d /home/solana/.ssh ]] || exit 1
if [[ -z $SOLANA_PUBKEYS ]]; then if [[ -z $SOLANA_PUBKEYS ]]; then
echo "Warning: source solana-user-authorized_keys.sh first" echo "Warning: source solana-user-authorized_keys.sh first"
fi fi
@ -15,9 +13,9 @@ fi
# solana-user-authorized_keys.sh defines the public keys for users that should # solana-user-authorized_keys.sh defines the public keys for users that should
# automatically be granted access to ALL testnets # automatically be granted access to ALL testnets
for key in "${SOLANA_PUBKEYS[@]}"; do for key in "${SOLANA_PUBKEYS[@]}"; do
echo "$key" >> /solana-authorized_keys echo "$key" >> /solana-scratch/authorized_keys
done done
sudo -u solana bash -c " sudo -u solana bash -c "
cat /solana-authorized_keys >> /home/solana/.ssh/authorized_keys cat /solana-scratch/authorized_keys >> /home/solana/.ssh/authorized_keys
" "

View File

@ -13,15 +13,15 @@ else
echo "solana ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers echo "solana ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
id solana id solana
[[ -r /solana-id_ecdsa ]] || exit 1 [[ -r /solana-scratch/id_ecdsa ]] || exit 1
[[ -r /solana-id_ecdsa.pub ]] || exit 1 [[ -r /solana-scratch/id_ecdsa.pub ]] || exit 1
sudo -u solana bash -c " sudo -u solana bash -c "
mkdir -p /home/solana/.ssh/ mkdir -p /home/solana/.ssh/
cd /home/solana/.ssh/ cd /home/solana/.ssh/
cp /solana-id_ecdsa.pub authorized_keys cp /solana-scratch/id_ecdsa.pub authorized_keys
umask 377 umask 377
cp /solana-id_ecdsa id_ecdsa cp /solana-scratch/id_ecdsa id_ecdsa
echo \" echo \"
Host * Host *
BatchMode yes BatchMode yes