Skip to content

Commit a8b6283

Browse files
authored
Merge pull request #184 from dokku/josegonzalez-patch-1
feat: also ignore missing and empty authorized_keys file when SSHCOMMAND_IGNORE_LIST_WARNINGS is set to true
2 parents 1381a26 + a0c6509 commit a8b6283

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

sshcommand

+20-3
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,30 @@ sshcommand-list() {
241241
declare desc="Lists SSH keys by user, an optional name and a optional output format (JSON)"
242242
declare userhome USER="$1" NAME="$2" OUTPUT_TYPE="${3:-$2}"
243243
[[ -z "$USER" ]] && log-fail "Usage: sshcommand list" "$(fn-args "sshcommand-list")"
244+
SSHCOMMAND_IGNORE_LIST_WARNINGS="${SSHCOMMAND_IGNORE_LIST_WARNINGS:-false}"
244245

245246
getent passwd "$USER" >/dev/null || log-fail "\"$USER\" is not a user on this system"
246247
userhome=$(sh -c "echo ~$USER")
247-
[[ -e "$userhome/.ssh/authorized_keys" ]] || log-fail "authorized_keys not found for $USER"
248-
[[ -s "$userhome/.ssh/authorized_keys" ]] || log-fail "authorized_keys is empty for $USER"
248+
if [[ ! -e "$userhome/.ssh/authorized_keys" ]]; then
249+
log-warn "authorized_keys not found for $USER"
250+
if [[ "$SSHCOMMAND_IGNORE_LIST_WARNINGS" == "false" ]]; then
251+
return 1
252+
fi
253+
return
254+
fi
255+
256+
if [[ ! -s "$userhome/.ssh/authorized_keys" ]]; then
257+
log-warn "authorized_keys is empty for $USER"
258+
if [[ "$SSHCOMMAND_IGNORE_LIST_WARNINGS" == "false" ]]; then
259+
return 1
260+
fi
261+
262+
if [[ "$OUTPUT_TYPE" == "json" ]]; then
263+
echo "[]"
264+
fi
265+
return
266+
fi
249267

250-
SSHCOMMAND_IGNORE_LIST_WARNINGS="${SSHCOMMAND_IGNORE_LIST_WARNINGS:-false}"
251268
if ! fn-verify-file "$userhome/.ssh/authorized_keys" && [[ "$SSHCOMMAND_IGNORE_LIST_WARNINGS" == "false" ]]; then
252269
return 1
253270
fi

0 commit comments

Comments
 (0)