Is there a way to alter this patch so that instead ONLY ROOT i can change the user
name ?
say ONLY $USERNAME ? or maybe just a list of users ?
or is there something in ssh that can deny some users and permit others to remotlly
log in ?
Thank you.
Laszlo Vecsey wrote:
> I'm not sure how useful this will be to you guys, but for me I'll be using
> the following patch for a machine that runs a radius server and as such
> needs a /etc/shadow or nis passwords available to it, but without letting
> anyone log into the machine (except for root).
>
> Perhaps there was another way to do this? This approach seems pretty good
> though.
>
> By specifying 'PermitRootLogin only' in the /etc/ssh2/ssh2_config file,
> only root logins are permitted. All other accounts get rejected.
>
> 'patch -p0 < ssh-root-only-patch' to apply. This is against 2.0.13.
>
> --
> diff -r -c ssh-2.0.13/apps/ssh/auths-passwd.c
>ssh-2.0.13-root-only-patch/apps/ssh/auths-passwd.c
> *** ssh-2.0.13/apps/ssh/auths-passwd.c Tue May 11 04:34:45 1999
> --- ssh-2.0.13-root-only-patch/apps/ssh/auths-passwd.c Mon Mar 6 22:46:47 2000
> ***************
> *** 87,92 ****
> --- 87,103 ----
> }
> }
>
> + if (ssh_user_uid(uc) != SSH_UID_ROOT &&
> + config->permit_root_login == SSH_ROOTLOGIN_ONLY)
> + {
> + ssh_log_event(config->log_facility,
> + SSH_LOG_WARNING,
> + "only root logins are permitted!");
> +
> + SSH_DEBUG(2, ("ssh_server_auth_passwd: only root logins are
>permitted."));
> + return SSH_AUTH_SERVER_REJECTED_AND_METHOD_DISABLED;
> + }
> +
> /* Parse the password authentication request. */
> if (ssh_decode_buffer(packet,
> SSH_FORMAT_BOOLEAN, &change_request,
> diff -r -c ssh-2.0.13/apps/ssh/sshconfig.c
>ssh-2.0.13-root-only-patch/apps/ssh/sshconfig.c
> *** ssh-2.0.13/apps/ssh/sshconfig.c Tue May 11 04:34:45 1999
> --- ssh-2.0.13-root-only-patch/apps/ssh/sshconfig.c Mon Mar 6 22:35:16 2000
> ***************
> *** 990,995 ****
> --- 990,998 ----
> {
> if (strcmp(val, "nopwd") == 0)
> config->permit_root_login = SSH_ROOTLOGIN_NOPWD;
> + else
> + if (strcmp(val, "only") == 0)
> + config->permit_root_login = SSH_ROOTLOGIN_ONLY;
> else
> config->permit_root_login = bool;
>
> diff -r -c ssh-2.0.13/apps/ssh/sshconfig.h
>ssh-2.0.13-root-only-patch/apps/ssh/sshconfig.h
> *** ssh-2.0.13/apps/ssh/sshconfig.h Wed Apr 28 01:48:57 1999
> --- ssh-2.0.13-root-only-patch/apps/ssh/sshconfig.h Mon Mar 6 22:31:41 2000
> ***************
> *** 58,64 ****
> /* Allow root login's. */
> SSH_ROOTLOGIN_TRUE = 1,
> /* Don't allow if using password authentication. */
> ! SSH_ROOTLOGIN_NOPWD = 2
> } SshPermitRootLogin;
>
> /* Data type for SSH server configuration data. */
> --- 58,66 ----
> /* Allow root login's. */
> SSH_ROOTLOGIN_TRUE = 1,
> /* Don't allow if using password authentication. */
> ! SSH_ROOTLOGIN_NOPWD = 2,
> ! /* Only allow root logins */
> ! SSH_ROOTLOGIN_ONLY = 3
> } SshPermitRootLogin;
>
> /* Data type for SSH server configuration data. */
> diff -r -c ssh-2.0.13/apps/ssh/sshd2.8 ssh-2.0.13-root-only-patch/apps/ssh/sshd2.8
> *** ssh-2.0.13/apps/ssh/sshd2.8 Thu Apr 29 10:18:22 1999
> --- ssh-2.0.13-root-only-patch/apps/ssh/sshd2.8 Mon Mar 6 22:56:59 2000
> ***************
> *** 386,396 ****
> .B PermitRootLogin
> Specifies whether the root can log in using
> .BR ssh2 .
> ! May be set to "\fByes\fR", "\fBnopwd\fR", or "\fBno\fR". The default
> is "\fByes\fR", allowing root logins through any of the authentication
> types allowed for other users. The "\fBnopwd\fR" value disables
> password-authenticated root logins. The "\fBno\fR" value disables
> ! root logins through any of the authentication methods. ("\fBnopwd\fR"
> and "\fBno\fR" are equivalent unless you have a .rhosts or .shosts in
> the root home directory and you you haven't set up public key
> authentication for root.)
> --- 386,397 ----
> .B PermitRootLogin
> Specifies whether the root can log in using
> .BR ssh2 .
> ! May be set to "\fByes\fR", "\fBnopwd\fR", "\fBonly\fR", or "\fBno\fR". The default
> is "\fByes\fR", allowing root logins through any of the authentication
> types allowed for other users. The "\fBnopwd\fR" value disables
> password-authenticated root logins. The "\fBno\fR" value disables
> ! root logins through any of the authentication methods. The "\fBonly\fR" value
> ! allows just root logins. ("\fBnopwd\fR"
> and "\fBno\fR" are equivalent unless you have a .rhosts or .shosts in
> the root home directory and you you haven't set up public key
> authentication for root.)
> Only in ssh-2.0.13-root-only-patch: include
>
> ------------------------------------------------------------------------
> Name: ssh-root-only-patch
> ssh-root-only-patch Type: Plain Text (TEXT/PLAIN)
> Encoding: BASE64