SSH远程访问及控制

一、SSH服务

1.1 SSH

  • SSH(Secure Shell)是一种安全通道协议,主要用于实现字符界面的远程登录、远程复制、类似于ftp功能。以上三个默认端口都是22,可修改
  • SSH协议对通信双方的数据传输进行了加密处理,包括用户登录的口令输入
  • SSH的数据传输基于TCP协议,对数据传输加密、压缩,从而提高传输速率 

ssh客户端---------------ssh服务端(22) 

1.2 SSH协议

  • 客户端:xshell  moba
  • 服务端:OpenSSH是SSH协议的开源热案件,适用于各种UNIX、Linux操作系统。

注:Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/sshd_config
客户端配置文件:/etc/ssh_config

1.3 SSH组成结构

  • 远程连接
  • 远程登录
  • 安全文件传输协议
  1. 传输层协议:提供加密技术,密码主机认证。只做主机认证,不执行用户认证
  2. 用户认证协议:运行在传输层之上,开始认证用户之后,从底层的会话标识接收会话的标识符,认证会话标识符的所有权。建立私钥,进行安全通信,只认证用户,不负责处理连接。
  3. 连接协议:处理最终的连接请求,运行在用户认证协议之上,提供了交互登录界面,远程命令,数据转发。

1.4 远程登录

虚拟机以命令行的方式远程登录(登录后,操作对本机无影响,exit退出!用完后立即退出!

1.4.1 默认端口号

[root@localhost ~]# ssh root@192.168.247.21  ##默认端口号22

##root不是本机用户,是21的用户
##@固定格式
##192.168.247.21要登录的服务器的IP地址

1.4.2 指定端口号

[root@localhost ~]# ssh -p 1122 root@192.168.247.22

##-p:指定端口

更改端口号:

  • 进入服务端配置文件

  • 重启服务,服务报错!!!

  •  查看运行日志,发现SELinux安全机制未关!!!然后关闭安全机制!!!

  •  通过另一台主机登录

 1.4.3 远程登录的访问控制

AllowUsers  ##允许登录的用户,相当于白名单,允许指定,拒绝所有
DenyUsers   ##禁止登录的用户,相当于黑名单,拒绝指定,允许所有

例:AllowUsers  aa  bb@192.168.233.20
##允许aa用户登录
##用户bb只能通过192.168.233.20IP登录
##多个用户用空格隔开

注:不能将同一个用户,既允许也拒绝

  • 对服务端配置文件/etc/ssh/sshd_config进行配置

  • 验证: 

 1.5 远程复制

scp远程复制:从别的主机将文件或者目录,复制到主机

#默认端口
[root@localhost /]# scp root@192.168.247.22:/opt/1.txt /opt/rh
##scp 远程复制命令
##192.168.247.22 要登录的IP地址
##/opt/1.txt 复制的文件位置
##/opt/rh 粘贴的文件位置

#已更改端口
[root@localhost /]# scp -P 1122 root@192.168.247.22:/opt/1.txt /opt/rh
##-P 指定端口
##-r 复制目录

1.6 安全文件传输协议(sftp)

sftp:使用了基于ssh协议(端口号22)的加密解密技术,所有传输效率比传统的ftp要慢,但是安全性更高,操作语法与ftp一样

#默认端口
[root@localhost /]# sftp root@192.168.247.20

#指定端口
[root@localhost /]# sftp -P 1122 root@192.168.247.20
  • 先在test1/opt/下创建120.txt文件;在test2/opt/下创建130.txt文件

  • 在test1中使用sftp连接test2,将test2/opt/下130.txt下载到test1的/opt/目录下

  • 将test1/opt/下130.txt上传到test2/opt/ky30目录下

  • 切换到test2/opt/ky30查看

二、密钥对验证

前言:因为服务器的密码可以通过暴力破解的方式进行破解,所有产生了更加安全的密钥对,必须提供匹配的密钥信息才能通过密钥验证

2.1 工作方式

  1. 在客户端创建一个密钥文件
  2. 密钥文件传送到服务短的指定位置
  3. 远程登陆时,系统将使用密钥进行验证,实现免交互登录。增强了一定比的安全性

注:密码和密钥对都开启,服务器会优先使用密钥对验证

2.2 加密方式

  • ecdsa (主流)
  • rsa
  • dsa

2.3 实验

[root@localhost ~]# ssh-keygen -t ecdsa 
##keygen 设置密钥
##-t ecdsa 指定加密方式
[root@localhost ~]# cd .ssh/  
[root@localhost .ssh]# ls
id_ecdsa  id_ecdsa.pub  known_hosts
##id_ecdsa 私钥文件
##id_ecdsa.pub 公钥文件

1.先在客户端生成密钥文

 2.进入存放路径,将公钥文件传入服务端

  •  ssh-copy-id :把本地主机的公钥复制到远程主机的 authorized_keys 文件中

3. 实现免交互登录

  • ssh-agent bash :用于启动一个新的 Bash shell,并在该 shell 中启动 SSH Agent。SSH Agent 是一个身份验证代理,用于管理和缓存 SSH 密钥,可以在需要时自动提供身份验证,从而实现免密码登录等功能
  • ssh-add :将 SSH 私钥添加到 SSH Agent 的命令。SSH Agent身份验证代理,管理和缓存SSH密钥
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值