summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Otubo <otubo@redhat.com>2020-07-15 20:21:02 +0200
committerGitHub <noreply@github.com>2020-07-15 14:21:02 -0400
commite161059a18173e2b61c54dba9eab774401fb5f1f (patch)
treecd628210ff953adc001a8ff81a497026be703a83
parent4fe576516d65feda17ba78e9265a8e494a195e7b (diff)
downloadvyos-cloud-init-e161059a18173e2b61c54dba9eab774401fb5f1f.tar.gz
vyos-cloud-init-e161059a18173e2b61c54dba9eab774401fb5f1f.zip
ssh exit with non-zero status on disabled user (#472)
It is confusing for scripts, where a disabled user has been specified, that ssh exits with a zero status by default without indication anything failed. I think exitting with a non-zero status would make more clear in scripts and automated setups where things failed, thus making noticing the issue and debugging easier. Signed-off-by: Eduardo Otubo <otubo@redhat.com> Signed-off-by: Aleksandar Kostadinov <akostadi@redhat.com> LP: #1170059
-rw-r--r--cloudinit/ssh_util.py4
-rw-r--r--doc/examples/cloud-config.txt2
2 files changed, 4 insertions, 2 deletions
diff --git a/cloudinit/ssh_util.py b/cloudinit/ssh_util.py
index 72e4e65e..89150acf 100644
--- a/cloudinit/ssh_util.py
+++ b/cloudinit/ssh_util.py
@@ -40,11 +40,13 @@ VALID_KEY_TYPES = (
"ssh-rsa-cert-v01@openssh.com",
)
+_DISABLE_USER_SSH_EXIT = 142
DISABLE_USER_OPTS = (
"no-port-forwarding,no-agent-forwarding,"
"no-X11-forwarding,command=\"echo \'Please login as the user \\\"$USER\\\""
- " rather than the user \\\"$DISABLE_USER\\\".\';echo;sleep 10\"")
+ " rather than the user \\\"$DISABLE_USER\\\".\';echo;sleep 10;"
+ "exit " + str(_DISABLE_USER_SSH_EXIT) + "\"")
class AuthKeyLine(object):
diff --git a/doc/examples/cloud-config.txt b/doc/examples/cloud-config.txt
index 20a0ce0d..f3ae5e68 100644
--- a/doc/examples/cloud-config.txt
+++ b/doc/examples/cloud-config.txt
@@ -236,7 +236,7 @@ disable_root: false
# The string '$USER' will be replaced with the username of the default user.
# The string '$DISABLE_USER' will be replaced with the username to disable.
#
-# disable_root_opts: no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"$USER\" rather than the user \"$DISABLE_USER\".';echo;sleep 10"
+# disable_root_opts: no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"$USER\" rather than the user \"$DISABLE_USER\".';echo;sleep 10;exit 142"
# disable ssh access for non-root-users
# To disable ssh access for non-root users, ssh_redirect_user: true can be