Skip to content

Commit 01d8491

Browse files
authored
Merge pull request #326 from rawiriblundell/update_instance_ssh
Improve efficiency and consistency of instance-ssh()
2 parents 3244639 + c0bf7cd commit 01d8491

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

lib/instance-functions

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -233,37 +233,33 @@ instance-ssh() {
233233
#
234234
# USAGE: instance-ssh [login] [instance-id] [instance-id]
235235

236+
local ssh_user instance_id keyname private_ip instance_name instance_default_user
236237
if [[ $1 != *i-* ]]; then
237-
local user=${1}
238+
ssh_user="${1}"
238239
shift
239240
fi
240-
local instance_ids=$(skim-stdin "$@")
241-
if [[ -z $instance_ids ]] ; then
242-
echo "Usage: $FUNCNAME [login] [instance-id] [instance-id]"
241+
instance_ids=$(skim-stdin "$@")
242+
if [[ -z "${instance_ids}" ]] ; then
243+
__bma_usage "[login] [instance-id] [instance-id]"
243244
return 1
244245
fi
245246

246247
exec </dev/tty # reattach keyboard to STDIN
247248

248-
for instance_id in $instance_ids; do
249-
local instance_details="$(instance-ssh-details $instance_id)"
250-
local instance_id=$(echo $instance_details | awk '{print $1}')
251-
local keyname=$(echo $instance_details | awk '{print $2}')
252-
local private_ip=$(echo $instance_details | awk '{print $3}')
253-
local instance_name=$(echo $instance_details | awk '{print $4}')
254-
local instance_default_user=$(echo $instance_details | awk '{print $5}')
255-
256-
local USERNAME=${user:-${instance_default_user:-${AWS_DEFAULT_USER:-root}}}
249+
for instance_id in ${instance_ids}; do
250+
read -r instance_id keyname private_ip instance_name instance_default_user < <(instance-ssh-details "${instance_id}")
251+
252+
ssh_user="${ssh_user:-${instance_default_user:-${AWS_DEFAULT_USER:-root}}}"
257253
echo "Connecting to EC2 Instance $instance_id '$instance_name'" 2>&1
258254

259-
ssh \
260-
-t \
261-
-i "${BMA_SSH_DIR:-~/.ssh}/$keyname" \
262-
-o LogLevel=error \
263-
-o StrictHostKeyChecking=no \
264-
-o UserKnownHostsFile=/dev/null \
265-
-l "$USERNAME" \
266-
"$private_ip"
255+
ssh \
256+
-t \
257+
-i "${BMA_SSH_DIR:-~/.ssh}/${keyname}" \
258+
-o LogLevel=error \
259+
-o StrictHostKeyChecking=no \
260+
-o UserKnownHostsFile=/dev/null \
261+
-l "${ssh_user}" \
262+
"${private_ip}"
267263
done
268264
}
269265

0 commit comments

Comments
 (0)