sshd的配置和优化(代码片段)

author author     2023-03-15     746

关键词:

sshd的配置和优化

sshd服务器端的配置文件为/etc/ssh_config

配置文件中的一些常用参数

常用参数 说明
port 监听端口号
ListenAddress ip 监听的IP地址
LoginGraceTime 发起连接后多少时间内必须登录超时断开连接
PermitRootLogin 是否允许root登录
StrictModes 检查.ssh/文件的所有者,权限等
MaxAuthTries 最大密码尝试次数
MaxSessions 同一连接的最大绘会话数
PubkeyAuthentication 基于Key验证
PermitEmptyPasswords 是否使用空口令登录
PasswordAuthentication 基于口令验证
GatewayPorts ssh服务监听所使用的端口当网关使用
ClientAliveInterval 间隔多久客户端和服务器端没有操作就断开连接
ClientAliveCountMax 和上面那项一起使用为检查的次数
UseDNS 是否使用名称解析
GSSAPIAuthentication GSSAPI的认证
MaxStartups 未验证的最大连接数
Banner 登录前提示
AllowUsers 允许哪些用户登录(白名单)
DenyUsers 不允许哪些用户登录(黑名单)
AllowGroups 允许哪些组登录(白名单)
DenyGroups 不允许哪些组登录(黑名单)

详细用法:
1.port
在生产环境中建议将此端口改为非标准端口,防止被人恶意猜测密码。

[[email protected] ~]# vim /etc/ssh/sshd_config
Port 2222
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时sshd服务已经监听在2222端口上
[[email protected] ~]# lsof -i:2222
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    2424 root    3u  IPv4  13945      0t0  TCP *:EtherNet/IP-1 (LISTEN)
sshd    2424 root    4u  IPv6  13947      0t0  TCP *:EtherNet/IP-1 (LISTEN)

2.LinstenAddress
若本机有多个ip地址,可以指定用哪个地址提供sshd服务

vim /etc/ssh/sshd_config
Port 2222
ListenAddress 172.22.27.12
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时sshd服务监听在172.22.27.124的2222端口上
[[email protected] ~]# ss -tnl |grep 2222
LISTEN     0      128           172.22.27.124:2222                     *:*  

3.LoginGraceTime
此项表示有多少用户发起ssh连接后多少时间内必须输入密码登录,否则断开连接默认为2分钟

#LoginGraceTime 2m

4.PermitRootLogin
是否允许root用户登录,在生产环境中,最好禁止root用户直接登录

[[email protected] ~]# vim /etc/ssh/sshd_config
Port 2222
ListenAddress 172.22.27.12
PermitRootLogin no 

重启sshd服务
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时使用root账户已经无法登录
[[email protected] ~]# ssh -p 2222 [email protected]
The authenticity of host ‘[172.22.27.124]:2222 ([172.22.27.124]:2222)‘ can‘t be established.
RSA key fingerprint is 46:d8:67:07:f3:51:87:95:2c:d7:4b:27:ce:85:a2:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[172.22.27.124]:2222‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied (publickey,password).

5.MaxAuthTries
最大密码尝试次数默认为3次,尝试次数为此项后的值的一半

[[email protected] ~]# vim /etc/ssh/sshd_config
#MaxAuthTries 6

6.MaxSessions
同一连接的最大会话个数,默认为10个

[[email protected] ~]# vim /etc/ssh/sshd_config
MaxSessions 3

重启服务
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
此时克隆会话时最多只能克隆3个在多就会拒绝

7.PubkeyAuthentication
基于Key验证,登录时使用密钥验证,此项默认开启生产环境中最好使用key验证。

[[email protected] ~]# vim /etc/ssh/sshd_config
#PubkeyAuthentication yes

8.PermitEmptyPasswords
是否使用空口令登录,生产环境中使用空口令登录是非常危险的,所以此处默认也是禁止的

[[email protected] ~]# vim /etc/ssh/sshd_config
#PermitEmptyPasswords no

9.PasswordAuthentication
基于口令验证,默认为开启。生产环境中建议禁用口令登录。只开启密钥登陆

[[email protected] ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes

10.GatewayPorts
ssh服务监听所使用的端口当网关使用
此项用法可参考端口转发
11.ClientAliveInterval和ClientAliveCountMax
ClientAliveInterval:连接后多久没有操作则断开
ClientAliveCountMax:检测几次后发现没有操作断开,此项和上一项结合一起使用

[[email protected] ~]# vim /etc/ssh/sshd_config
#ClientAliveInterval 0             #0表示不限制时间
#ClientAliveCountMax 3

11.UseDNS和GSSAPIAuthentication
此处2项建议关闭,能加速ssh的连接速度
12.MaxStartups
未验证的最大连接数,默认的10:30:100表示,ssh连接进入前10个链接能全部连接上,当连接数大于10个就以30%的纪律随机拒绝登陆,连接数超过100个全部拒绝

[[email protected] ~]# vim /etc/ssh/sshd_config
MaxStartups 10:30:100

12.Banner
登录前提示,在选项后跟上路径

[[email protected] ~]# vim /etc/ssh/sshd_config
Banner /data/hello
[[email protected] ~]# echo hello > /data/hello    #创建一个hello的文件
#重启服务
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[[email protected] ~]# ssh -p 2222 [email protected]
hello                                       #所创建的登录前提示
[email protected]‘s password: 

13、AllowUsers、DenyUsers、AllowGroups、DenyGroups
此处4项为用户和组的黑白名单

[[email protected] ~]# vim /etc/ssh/sshd_config 
DenyUsers wang                      #将wang用户加入黑名单
#重启服务
[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

[[email protected] ~]# useradd wang
[[email protected] ~]# echo 111111 | passwd --stdin wang
Changing password for user wang.
passwd: all authentication tokens updated successfully.
#此时wang用户无法登陆
[[email protected] ~]# ssh -p 2222  [email protected]
hello
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied (publickey,password).

生产环境中ssh服务最佳实践

1.建议使用非默认端口
修改port
2.禁止使用protocol version 1
Protocol 2
3.限制可登录用户
AllowUsers、DenyUsers、AllowGroups、DenyGroups
4.设定空闲会话超时时长
ClientAliveInterval和ClientAliveCountMax
5.利用防火墙设置ssh访问策略
设置iptables策略
6.仅监听特定的IP地址
修改Listen
7.基于口令认证时,使用强密码策略
使用难以猜测的随机口令,长度越长约好,并定期修改。
8.使用基于密钥的认证
使用密钥登陆,不使用口令
9.禁止使用空密码
PermitEmptyPasswords no
10.禁止root用户直接登录
PermitRootLogin
11.限制ssh的访问频度和并发在线数
MaxStartups
12.经常分析日志
sshd的日志文件为/var/log/secure

sshd_config配置文件(代码片段)

[[email protected]~]$cat/etc/ssh/sshd_config#Port22监听端口,默认监听22端口【默认可修改】#AddressFamilyanyIPV4和IPV6协议家族用哪个,any表示二者均有#ListenAddress0.0.0.0指明监控的地址,0.0.0.0表示本机的所有地址【默认可修改】#ListenAddress:... 查看详情

wsl优化之ssh远程登录篇(代码片段)

...了openssh-server,也就是ssh服务的软件。但是,这个软件的配置是不完整的,如果启用服务,会报缺失几个密钥文件。为了解决这个问题,我们需要重新安装openssh-server:重新安装完还不行,因为WSL上的Ubuntu的SSH服务配置默认不允... 查看详情

linux基础服务sshd简介(代码片段)

...,较之使用明文传输的telnet传输文件要安全很多。sshd配置文件/etc/ssh/sshd_config如果井号开 查看详情

sshpass详解(代码片段)

...过的主机。而又不输入yes进行确认,需要进行sshd服务的优化:#vim/etc/ssh/ssh_configStrictHostKeyCheckingno#vim/etc/ssh/sshd_configGSSAPIAuthenticationnoUseDNSno#servicesshdrestartsshpass 查看详情

linux配置应用服务器通过证书免密码登录sftp测试站点(代码片段)

...。vsftp是vsftpd服务,是正儿八经的传统意义上的FTPsftp配置文件sftp没有自己的配置文件,因为是sshd附赠的,所以和ssh公用22端口以及sshd的配置文件cat/etc/ssh/sshd_configsftp服务器配置其实每台能ssh上去的服务器都可以看作... 查看详情

远程使用key证书登录(代码片段)

远程登录使用key证书登录配置密钥登录的方法很简单,过程不外乎:一:开启sshd服务的密钥验证功能;二:生成密钥;三:添加密钥到账户的authorized_keys文件中授权;四:保存私钥和公钥到本地电脑添加到SSH客户端软件;五:... 查看详情

关于配置sshd的一些操作(代码片段)

关于服务器自动化配置的一些操作自动化配置服务器,其本质就是开机自动运行脚本开机自动运行脚本的思路1.以某一用户身份去登陆服务器,在linux系统下会默认运行用户家目录下的.bashrc配置文件2.linux或unix系统下,... 查看详情

关于配置sshd的一些操作(代码片段)

关于服务器自动化配置的一些操作自动化配置服务器,其本质就是开机自动运行脚本开机自动运行脚本的思路1.以某一用户身份去登陆服务器,在linux系统下会默认运行用户家目录下的.bashrc配置文件2.linux或unix系统下,... 查看详情

sshd安全性能优化

...快速度连接,减少不必要的带宽的浪费。 sshd服务的配置文件为/etc/ssh/sshd_config,内容默认如下:#$OpenBSD:sshd_config,v1.802008/07/0202:24:18djmExp$#Thisisthesshdserversystem-widec 查看详情

sshd(代码片段)

sshd服务介绍ssh协议:安全外壳协议。为SecureShell的缩写。ssh为建立在应用层和传输层基础上的安全协议。sshd服务使用ssh协议可以用来进行远程控制,或在计算机之间传送文件。openssh软件包,提供了服务端后台程序和客户端工具,... 查看详情

docker配置sshd服务(代码片段)

启动一个centos服务[email protected]:/data#dockerrun--privileged-itd--namecentos_lnmp1.14-p8088:80-p33006:3306centos/usr/sbin/init[email protected]:/data#dockerexec-it97aaee886614/bin/bash[[email protected]/]#yuminstall-ygcc-c++gccopensslopenssl-develpcre-develpcreopensshopsnssh-... 查看详情

linuxssh密钥认证登陆配置(代码片段)

给公司阿里云的ECS配置SSH认证,中间遇到一些问题,主要是概念不很清楚。ECS服务器OS是CENTOS7自带OPENSSH服务netstat-ntlp|grep22 就可以看到22端口 和服务SSHD SSHD服务的配置文件在/etc/ssh/sshd_config。先讲下认证过程一般先在客... 查看详情

ssh和sshd服务(代码片段)

1.1 对称加密和非对称加密对称加密:加密和解密使用一样的算法,只要解密时提供与加密时一致的密码就可以完成解密。例如QQ登录密码,银行卡密码,只要保证密码正确就可以。非对称加密:通过公钥(publickey)和私钥(private... 查看详情

nginx性能优化(配置文件详解)(代码片段)

...访问,那下面在单台Nginx服务器来优化相关参数。Nginx.conf配置优化:worker_processes8;nginx进程数,建议按照cpu数目来指定,一般为它的倍数。worker_cpu_affinity00000001000000100000010000001000000100000010000001 查看详情

sshd服务,firewalld,ip配置(代码片段)

ip配置ifconfig查看cd/etc/sysconfig/network-scriptsviifcfg-en0BOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1ONBOOT=yesjdk配置环境变量vi/etc/profile最后一行添加如下代码exportJAVA_HOME=/usr/loc 查看详情

14.3-elk重难点总结和整体优化配置(代码片段)

本文收录在Linux运维企业架构实战系列做了几周的测试,踩了无数的坑,总结一下,全是干货,给大家分享~一、elk实用知识点总结1、编码转换问题(主要就是中文乱码)(1)input中的codec=>plain转码codec=>plaincharset=>"GB2312"将... 查看详情

关于linux系统-sshd服务-allowusers与allowgroups-选项的安全加固配置(代码片段)

在一些Linux系统-sshd服务,的主配置文件,/etc/ssh/sshd_config 我们可能会看到配置有AllowUsers与AllowGroups的安全加固选项,关于两个选项的说明如下:从选项名称上就可以知道这两个是选项,是属于白名单选项的,在安全中,如果... 查看详情

springboot项目优化和jvm调优(亲测!真实有效)(代码片段)

...得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件application.properties。https://docs.spring.io/spring-boot/docs/current/reference/html/common 查看详情