Skip to content

Instantly share code, notes, and snippets.

@neilkuan
Last active May 9, 2022 09:55
Show Gist options
  • Save neilkuan/f72a4b1c11dd101b43ba69ab6e0a52a7 to your computer and use it in GitHub Desktop.
Save neilkuan/f72a4b1c11dd101b43ba69ab6e0a52a7 to your computer and use it in GitHub Desktop.
send public key to connect ec2
#!/bin/bash
instanceId=$1
pubkey="$HOME/.ssh/id_rsa.pub"
sshUser='ec2-user'
az=$(aws ec2 describe-instances --instance-id ${instanceId} --query 'Reservations[0].Instances[0].Placement.AvailabilityZone' --output text)
echo "sending public key to ${instanceId}"
aws ec2-instance-connect send-ssh-public-key --instance-id ${instanceId} --instance-os-user ${sshUser} \
--ssh-public-key file://${pubkey} --availability-zone ${az} > /dev/null
if [[ $2 != '--send-key-only' ]]; then
publicIp=$(aws ec2 describe-instances --instance-id ${instanceId} --query 'Reservations[0].Instances[0].PublicIpAddress' --output text)
echo "connecting to ${publicIp} at ${az}"
ssh ${sshUser}@${publicIp}
fi
if [[ $2 == 'public' ]]; then
publicIp=$(aws ec2 describe-instances --instance-id ${instanceId} --query 'Reservations[0].Instances[0].PublicIpAddress' --output text)
echo "connecting to ${publicIp} at ${az}"
ssh ${sshUser}@${publicIp}
fi
if [[ $2 == 'private' ]]; then
privateIp=$(aws ec2 describe-instances --instance-id ${instanceId} --query 'Reservations[0].Instances[0].PrivateIpAddress' --output text)
echo "connecting to ${privateIp} at ${az}"
ssh ${sshUser}@${publicIp}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment