Linux中启动或禁止用户使用SSH登录

  大多数情况下,在使用Linux操作系统时,都是用一些第三方的工具来操作。如SecureCRT,SSH Secure Shell Client,Putty,Xmanger等。这些工具最常见的连接类型有Telnet、SSH等,有时为了安全考虑,需要禁止或限制用户使用SSH, 如禁止服务器上的root、及其它用户用SSH登录;限定只允许指定的IP登陆SSH,设置免密码登陆等等,这时就要修改SSH的配置了。

对登陆用户的限制

编辑SSH服务的配置文件
  1. #vim /etc/ssh/sshd_config
修改此行内容,用以禁止 Root 用户使用SSH登陆
  1. #PermitRootLogin yes  把#号去掉,yes修改为no即可,
加入以下内容,只允许后面的用户和用户组使用SSH登陆
  1. AllowUsers   username
  2. AllowGroups  groupname
加入以下内容,只禁止后面的用户和用户组使用SSH登陆,
  1. DenyUsers    username
  2. DenyGroups   groupname
allow/deny 指令按照下列顺序处理: DenyUsers, AllowUsers, DenyGroups, AllowGroups 
修改完配置文件,必须重新启动SSH服务才能生效

  1. #/etc/init.d/sshd restart

对登陆IP的限制
修改配置文件
  1. #vim /etc/hosts.allow
加入以下内容,用以设置允许登陆的IP
  1. sshd:192.168.1.100:allow
修改配置文件
  1. #vim /etc/hosts.deny
加入以下内容,用以拒绝所IP登陆
  1. sshd:ALL
完成上面两个步骤后,我们禁止所有IP,但是允许相关IP登录。

用证书登录
1.生成公私密钥
  1. ssh-keygen -t rsa -f /root/.ssh/id_rsa  密钥类型由SSH协议决定,SSH1只能使用RSA加密方式,SSH2支持RSA和DSA算法
2.在服务端注册公钥
  1. vim /root/.ssh/authorized_keys  在服务器上编辑此文件,复制公钥内容到文件
3.在服务端开启证书认证,并关闭密码方式登陆
编辑sshd-config文件,修改以下内容
  1. PubkeyAuthentication yes
  2. AuthorizedKeysFile .ssh/authorized_keys
  3. RSAAuthentication yes
  4. PasswordAuthentication no
4.客户端通过私钥登陆ssh服务器
  1. ssh -i /root/.ssh/id_rsa root@<ssh_server_ip> -p port   可在/etc/ssh/ssh_config中设置私钥的路径IdentityFile ~/.ssh/id_rsa ,这样就可以不用每次登陆都指定路径

sshd_config文件的其他配置
#Port 22
修改端口

Protocol 2
选择ssh协议版本

AddressFamily  
指定sshd(8) 应当使用哪种地址族。取值范围是:"any"(默认)、"inet"(仅IPv4)、"inet6"(仅IPv6)。

ListenAddress
指定sshd(8) 监听的网络地址,默认监听所有地址。可以使用多个 ListenAddress 监听多个地址。格式如ListenAddress host|IPv4_addr:port  

#LogLevel INFO
设置日志等级,INFO为默认级别

#LoginGraceTime 2m
限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。 

AllowGroups 
后面跟着一串用空格分隔的组名列表(其中可以使用"*"和"?"通配符)。默认允许所有组登录。如果使用了这个指令,那么将仅允许这些组中的成员登录,而拒绝其它所有组。 "组"是指"主组"且不能用GID

AllowTcpForwarding  
是否允许TCP转发,默认值为"yes"。禁止TCP转发并不能增强安全性,除非禁止了用户对shell的访问,因为用户可以安装他们自己的转发器。

AllowUsers
后面跟着一串用空格分隔的用户名列表(其中可以使用"*"和"?"通配符)。默认允许所有用户登录。如果使用了这个指令,那么将仅允许这些用户登录,而拒绝其它所有用户。

#ClientAliveInterval 0
超时断开,每多少秒向客户端请求消息,默认是0不发送。
#ClientAliveCountMax 3
超过3次客户端没回应请求就断开

PubkeyAuthentication yes
启用公私密钥配对认证方式,仅可以用于SSH-2
AuthorizedKeysFile   .ssh/authorized_keys    
设定PublicKey文件路径,若有多个公钥,直接在后面追加
RSAAuthentication yes  
允许RSA密钥
PasswordAuthentication no
有了证书登录了,就禁用密码登录吧

Banner
将这个指令指定的文件中的内容在用户进行认证前显示给远程用户。 这个特性仅能用于SSH-2,默认什么内容也不显示。"none"表示禁用这个特性。 

AcceptEnv
指定客户端发送的哪些环境变量将会被传递到会话环境中。只有SSH-2协议支持环境变量的传递,指令的值是空格分隔的变量名列表(可用'*'和'?'作为通配符)。也可用多个 AcceptEnv 。细节参考 ssh_config(5) 中的 SendEnv 配置指令。

Ciphers
指定SSH-2允许使用的加密算法。多个算法之间使用逗号分隔。可以使用的算法如下:  "aes128-cbc", "aes192-cbc", "aes256-cbc", "aes128-ctr", "aes192-ctr", "aes256-ctr",  "3des-cbc", "arcfour128", "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc" 默认值是可以使用上述所有算法。





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29626120/viewspace-1689845/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29626120/viewspace-1689845/

Linux,您可以使用以下方法限制SSH登录用户: 1. 使用`/etc/ssh/sshd_config`文件:编辑SSH服务器的配置文件`sshd_config`,通常位于`/etc/ssh/`目录下。找到并修改以下行: - `AllowUsers`:在该行后添加要允许登录用户名列表,仅这些用户将被允许登录。例如: ``` AllowUsers john jane ``` - `DenyUsers`:在该行后添加要拒绝登录用户名列表,这些用户将被禁止登录。例如: ``` DenyUsers test ``` - `AllowGroups`:在该行后添加要允许登录用户组列表,仅属于这些用户组的用户将被允许登录。例如: ``` AllowGroups sshusers ``` - `DenyGroups`:在该行后添加要拒绝登录用户组列表,属于这些用户组的用户将被禁止登录。例如: ``` DenyGroups ftpusers ``` 保存文件并重新启动SSH服务以使更改生效。 2. 使用`/etc/hosts.allow`和`/etc/hosts.deny`文件:您可以使用这两个文件来限制SSH登录。编辑`/etc/hosts.allow`文件,添加以下行: ``` sshd: <允许登录的IP地址或IP地址范围> ``` 编辑`/etc/hosts.deny`文件,添加以下行: ``` sshd: ALL ``` 这将拒绝除了在`hosts.allow`文件指定的IP地址之外的所有SSH连接。 3. 使用防火墙:配置防火墙以仅允许特定IP地址或IP地址范围进行SSH连接。您可以使用iptables命令(如`iptables -A INPUT -p tcp --dport 22 -s <允许登录的IP地址> -j ACCEPT`)或其他防火墙工具来实现。 请注意,在进行任何更改之前,请确保您具有足够的权限,并备份相关文件以防止意外错误。另外,确保不要将自己锁定在系统外部,以免无法远程登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值