ssh远程登陆

一、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 实操:免密登录

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值