由于你们公司的标准,你可能只允许部分人访问Linux系统。或者你可能只能允许少数用户组中的用户访问Linux系统。那么如何实现这样的需求呢?什么是最好的方法?如何用简单的方法来实现呢?是的,我们将有很多方法来实现它。但是我们应该使用简单易行的方法。为了简单方便地达到目的,我们可以通过对/etc/ssh/sshd_config文件进行必要的修改来实现。在本文中,我们将向您展示实现要求的详细步骤。我们为什么要做这个?出于安全原因。您可以访问此链接以了解有关如何使用openSSH的更多信息。什么是SSH?openssh代表OpenBSD安全外壳。SecureShell(ssh)是一个免费的开源网络工具,它允许我们通过使用SecureShell(SSH)协议在不安全的网络中安全地访问远程主机。它采用客户端-服务器架构(C/S),具有用户认证、加密、计算机与隧道之间的文件传输等功能。我们也可以使用telnet或rcp等传统工具来完成,但这些工具并不安全,因为它们以明文形式传输用于任何操作的密码。如何让用户在Linux中使用SSH?通过以下内容,我们可以为指定用户或用户列表启用ssh访问。如果要允许多个用户,可以在添加用户时在同一行用空格隔开。为此,只需将以下值附加到/etc/ssh/sshd_config文件即可。在此示例中,我们将允许用户user3使用ssh。#echo"AllowUsersuser3">>/etc/ssh/sshd_config可以运行如下命令再次查看是否添加成功。#猫/etc/ssh/sshd_config|grep-iallowusersAllowUsersuser3就这样了,现在只要重启ssh服务就可以见证奇迹了。(以下两条命令效果相同,请根据你的服务管理方式选择一条执行)#systemctlrestartsshdor#servicerestartsshd接下来的步骤很简单,只需要打开一个新的终端或会话,尝试使用一个不同的用户以身份访问Linux系统。是的,这里不允许user2用户使用SSH登录,会得到如下所示的错误信息。#sshuser2@192.168.1.4user2@192.168.1.4的密码:权限被拒绝,请重试。输出:Mar2902:00:35CentOS7sshd[4900]:不允许来自192.168.1.6的用户user2,因为未在AllowUsersMar2902:00:35CentOS7sshd[4900]中列出:input_userauth_request:无效的用户user2[preauth]Mar2902:00:40CentOS7unix_chkpwd[4902]:用户(user2)的密码检查失败Mar2902:00:40CentOS7sshd[4900]:pam_unix(sshd:auth):身份验证失败;logname=uid=0euid=0tty=sshruser=rhost=192.168.1.6user=user2Mar2902:00:43CentOS7sshd[4900]:来自192.168.1.6端口42568ssh2的无效用户user2的密码失败同时用户user3是允许登录系统,因为他在允许的用户列表中。#sshuser3@192.168.1.4user3@192.168.1.4'spassword:[user3@CentOS7~]$Output:Mar2902:01:13CentOS7sshd[4939]:acceptedpasswordforuser3from192.168.1.6port42590ssh2Mar2902:01:13CentOS7sshd[4939]:pam_unix(sshd:session):sessionopenedforuseruser3by(uid=0)如何防止用户在Linux中使用SSH?通过以下内容,我们可以配置指定用户或用户列表禁用ssh。如果要禁用多个用户,可以在添加用户时在同一行用空格隔开。为此,只需将以下值附加到/etc/ssh/sshd_config文件即可。在此示例中,我们将为用户user1禁用ssh。#echo"DenyUsersuser1">>/etc/ssh/sshd_config可以再次运行如下命令查看是否添加成功。#猫/etc/ssh/sshd_config|grep-idenyusersDenyUsersuser1就这样了,现在只要重启ssh服务就可以见证奇迹了。#systemctlrestartsshdlive#servicerestartsshd剩下的很简单,只需打开一个新的终端或会话,并尝试以禁用用户身份访问Linux系统。是的,这里user1用户在禁止列表中。因此,当您尝试登录时,您将收到如下所示的错误消息。#sshuser1@192.168.1.4user1@192.168.1.4的密码:权限被拒绝,请重试。输出:Mar2901:53:42CentOS7sshd[4753]:不允许来自192.168.1.6的用户user1,因为在DenyUsersMar2901:53:42CentOS7sshd[4753]中列出:input_userauth_request:无效的用户user1[preauth]Mar2901:53:46CentOS7unix_chkpwd[4755]:用户(user1)3月29日的密码检查失败01:53:46CentOS7sshd[4753]:pam_unix(sshd:auth):身份验证失败;logname=uid=0euid=0tty=sshruser=rhost=192.168.1.6user=user1Mar2901:53:48CentOS7sshd[4753]:来自192.168.1.6端口42522ssh2的无效用户user1的密码失败如何允许用户组在Linux中使用SSH?通过下面的内容,我们可以允许一个指定的组或者多个组使用ssh。如果要允许多个组使用ssh那么在添加用户组时需要在同一行用空格隔开。为此,只需将以下值附加到/etc/ssh/sshd_config文件。在此示例中,我们将允许2g-admin组使用ssh。#echo"AllowGroups2g-admin">>/etc/ssh/sshd_config可以再次运行以下命令查看是否添加成功。#猫/etc/ssh/sshd_config|grep-iallowgroupsAllowGroups2g-admin运行以下命令查看哪些用户属于这个用户组。#getentgroup2g-admin2g-admin:x:1005:user1,user2,user3就这样了,现在只要重启ssh服务就可以见证奇迹了。#systemctlrestartsshdor#servicerestartsshd是的,允许user1登录系统,因为用户user1属于组2g-admin。#sshuser1@192.168.1.4user1@192.168.1.4'spassword:[user1@CentOS7~]$Output:Mar2902:10:21CentOS7sshd[5165]:acceptedpasswordforuser1from192.168.1.6port42640ssh2Mar2902:10:22CentOS7sshd[5165]:pam_unix(sshd:session):sessionopenedforuseruser1by(uid=0)是的,允许user2登录系统,因为用户user2也属于2g-admin组.#sshuser2@192.168.1.4user2@192.168.1.4'spassword:[user2@CentOS7~]$Output:Mar2902:10:38CentOS7sshd[5225]:acceptedpasswordforuser2from192.168.1.6port42642ssh2Mar2902:10:38CentOS7sshd[5225]:pam_unix(sshd:session):sessionopenedforuseruser2by(uid=0)当你试图用不在允许组中的其他用户登录系统时,你将得到如下所示的错误信息。#sshladmin@192.168.1.4ladmin@192.168.1.4的密码:权限被拒绝,请重试。输出:Mar2902:12:36CentOS7sshd[5306]:不允许来自192.168.1.6的用户ladmin,因为AllowGroupsMar2902:12:36CentOS7sshd[5306]:input_userauth_request:无效的用户ladmin[preauth]Mar2902:12:56CentOS7unix_chkpwd[5310]:用户密码检查失败(ladmin)Mar2902:12:56CentOS7sshd[5306]:pam_unix(sshd:auth):身份验证失败;logname=uid=0euid=0tty=sshruser=rhost=192.168.1.6user=ladminMar2902:12:58CentOS7sshd[5306]:来自192.168.1.6端口42674ssh2的无效用户ladmin的密码失败如何防止用户在Linux中使用SSH的组?通过以下内容,我们可以为指定的一个或多个组禁用ssh。如果要禁止多个用户组使用ssh,需要在添加用户组时在同一行用空格隔开。为此,只需将以下值附加到/etc/ssh/sshd_config文件即可。#echo"DenyGroups2g-admin">>/etc/ssh/sshd_config可以再次运行如下命令查看是否添加成功。##猫/etc/ssh/sshd_config|grep-idenygroupsDenyGroups2g-admin#getentgroup2g-admin2g-admin:x:1005:user1,user2,user3就这样了,现在只要重启ssh服务,见证奇迹。#systemctlrestartsshdor#servicerestartsshd是的user1不允许登录系统,因为他是2g-admin用户组的成员。他属于禁用ssh的组。#sshuser1@192.168.1.4user1@192.168.1.4的密码:权限被拒绝,请重试。输出:Mar2902:17:32CentOS7sshd[5400]:不允许来自192.168.1.6的用户user1,因为DenyGroups中列出了一个组Mar2902:17:32CentOS7sshd[5400]:input_userauth_request:无效的用户user1[preauth]3月29日02:17:38CentOS7unix_chkpwd[5402]:用户(user1)的密码检查失败3月29日02:17:38CentOS7sshd[5400]:pam_unix(sshd:auth):身份验证失败;logname=uid=0euid=0tty=sshruser=rhost=192.168.1.6user=user1Mar2902:17:41CentOS7sshd[5400]:来自192.168.1.6端口42710ssh2用户的无效用户user1的密码失败2g-admin用户组可以使用ssh登录系统。例如,允许ladmin等用户登录系统。#sshladmin@192.168.1.4ladmin@192.168.1.4的密码:[ladmin@CentOS7~]$输出:Mar2902:19:13CentOS7sshd[5432]:ladmin从192.168.1.6端口42716ssh2Mar29接受的密码02:19:13CentOS7sshd[5432]:pam_unix(sshd:会话):为用户ladmin打开的会话(uid=0)
