一、ssh远程登陆的概念
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
SSH客户端<--------------网络---------------->SSH服务端
1.1 优点:
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度
客户端
Linux 客户端: ssh, scp, sftp,slogin
Windows 客户端:xshell, MobaXterm,putty, securecrt, ssh secure shell client
SSH客户端的配置文件:/etc/ssh/ssh_config
服务端
SSH服务端:OpenSSH (开源)
ssh服务端主要包括两个服务功能:ssh远程连接和sftp服务(文件传输功能)
1.2 ssh原理
简单解释:先用对方的公钥加密传给对面,对面再用自己的私钥解密
-
客户端发起链接请求
-
服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
-
客户端生成密钥对
-
客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
-
客户端发送加密值到服务端,服务端用私钥解密,得到Res
-
服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
-
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
1.3 ssh远程登录
格式:ssh 用户@ip地址
ssh加密通讯,远程登陆 | 格式 | ssh 用户@IP地址 |
—l | 指定用户名 ssh-l zhangsan 192.168.91.101 | |
—p | 指定端口号 ssh 192.168.91.101 -p 9527 | |
—t | 方便跳板连接ssh -t 192.168.91.101 ssh -t 192.168.91.102 ssh 192.168.91.103 |
1.4 设置服务端配置
[root@ky15-1 ~]# vim /etc/ssh/sshd_config
17 Port 22 #生产建议修改
ListenAddress ip
#监听地址设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。
LoginGraceTime 2m #用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒
PermitRootLogin yes #默认 ubuntu不允许root远程ssh登录
StrictModes yes #检查.ssh/文件的所有者,权限等
MaxAuthTries #用来设置最大失败尝试登陆次数为6
MaxSessions 10 #同一个连接最大会话
PubkeyAuthentication yes #基于key验证
PermitEmptyPasswords no
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。
PasswordAuthentication yes #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no 内网改为no 禁用反向解析
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单 黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2
1.5 ssh服务的最佳实践
1. 建议使用非默认端口 22
2. 禁止使用protocol version 1
3. 限制可登录用户 白名单
4. 设定空闲会话超时时长
5. 利用防火墙设置ssh访问策略
6. 仅监听特定的IP地址 公网 内网
7. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
8. 使用基于密钥的认证
9. 禁止使用空密码
10. 禁止root用户直接登录
11. 限制ssh的访问频度和并发在线数
12. 经常分析日志 分离
1.6 实操:免密登录
文章来源:https://www.toymoban.com/news/detail-811106.html
文章来源地址https://www.toymoban.com/news/detail-811106.html
到了这里,关于ssh远程登陆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!