ssh远程登录协议

ssh远程登录协议

一.SSH服务

1.SSH基础

1.1SSH协议
  • 是一种安全通道协议
  • 对通信数据进行了加密处理,用于远程管理
  • Telnet 使用明文传输,SSH 是加密传输
服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config
1.2OpeSSH(安装包名字)
OpenSSH 常用配置文件有两个/etc/ssh/ssh_config 和/etc/sshd_config。
ssh_config:为客户端配置文件,设置与客户端相关的应用可通过此文件实现
sshd_config:为服务器端配置文件,设置与服务端相关的应用可通过此文件实现




ssh_host_ecdsa_key.pub
1.3优点
  • 数据传输是加密的,可以防止信息泄漏
  • 数据传输是压缩的,可以提高传输速度

2.ssh原理

2.1公钥传输原理

在这里插入图片描述

##首次链接时的公钥交换##
1.客户端发起连接请求,服务端会生成一个会话id,以及将会话id和自己的公钥交给客户端
2.客户端拿到公钥和会话id以后,会用自己的公钥和对面给的会话id做运算得到一个结果,然后用服务端的公钥加密,传输给服务端
3.服务端收到这个结果,用自己的私钥去解密结果,会得到客户端的公钥
  结果=会话id + 客户端的公钥
  结果 - 会话id=客户端的公钥
4最终双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
2.2登录
1.ssh ip地址  远程登录
2.ssh [远程主机用户名]@[IP地址]
[root@localhost .ssh]#vim /etc/ssh/ssh_config
#修改客户端配置文件 无需验证,有安全隐患
35    StrictHostKeyChecking no
3.ssh ip地址 -p 端口号
  -l :-l 选项,指定登录名称。
  -p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
[root@localhost ~]#vim /etc/ssh/sshd_config
#修改端口号
systemctl restart sshd
#重启服务


-t:并行,方便跳板机连接
[root@localhost .ssh]#iptables -A INPUT -s 192.168.91.102 -j REJECT 
#模拟防火墙,禁止来自192.168.91.101的访问
#7-1连7-3不能直接连,需要先连7-2再通过7-2连7-3
[root@localhost ~]# ssh -t 192.168.91.102  192.168.91.103
#-t方便跳板连接

3.服务端配置

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. 经常分析日志 分离
3.1常用配置项
3.1.1修改默认端口
#修改默认端口
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#17 行修改自己默认的端口
17 Port 9527
#修改后重启服务
systemctl restart sshd
3.1.2禁止root用户登录
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#开启38 行 并改为 no,默认注释并写的yes
38 PermitRootLogin no
#注意虽然阻止了root 但是普通用户可以使用su
[root@localhost1 ~]#ssh zhangsan@192.168.91.100 -p 9527
zhangsan@192.168.91.100's password: 
Last login: Fri Aug 27 16:50:35 2021
[zhangsan@localhost2 ~]$ 
[zhangsan@localhost2 ~]$ su root
密码:
[root@localhost2 zhangsan]#

#修改 pam认证模块,就可以禁止su root登录
[root@localhost ssh]#vim /etc/pam.d/su
#开启第6行,默认注释
6 auth            required        pam_wheel.so use_uid

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.3白名单黑名单列表
#白名单 AllowUsers 加进来才可以,默认拒绝所有,控制度比较大,不要两个一起同时使用
#黑名单 DenyUsers  加进来才不可以,默认允许所有
[root@localhost ssh]#vim /etc/ssh/sshd_config
#手动添加
AllowUsers zhangsan@192.168.91.101  lisi   
#允许所有的主机访问我的lisi用户
#只允许 zhangsan 从192.168.91.101上访问
3.2 使用秘钥对及免交互验证登录
#免密登录
#第一步生成密钥文件
ssh-keygen  [-t 指定加密方式]

Enter file in which to save the key (/root/.ssh/id_ecdsa):  默认就回车
#选择 密钥文件存放的位置,默认在当前用户家目录下 .ssh文件夹中
会生成两个文件 带.pub 是公钥需要传给服务器

Enter passphrase (empty for no passphrase): 
#对密钥文件进行加密 一般不设置密码直接回车
最后会生成两个文件 密钥文件

ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.210.102
#将密钥传给192.168.210.102

在这里插入图片描述

4.ssh客户端

scp命令 —— 远程安全复制
scp 本地文件位置 ip地址:目录
scp ssh.sh 192.168.210.102:/mnt/
#将ssh.sh文件拷到192.168.210.102的/mnt/目录下

sftp 192.168.210.102 #登录到服务器
get下载
get anaconda-ks.cfg /home/

上传
put /etc/passwd  #默认时会上传的/root 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值