SSH远程访问及控制

什么是SSH远程连接?

ssh就是远程连接管理协议,linux 4以后都是服务器自带的

SSH(Secure Shell):安全通道协议,主要实现字符界面的远程登录,远程复制,类似于ftp的功能。

端口:22(默认,可以修改)

SSH的特点:
1.数据加密:对通信双方的数据传输都进行了加密处理,甚至包括用户登录的口令输入。
2.数据传输基于tcp协议。(一个是ssh客户端,另一个是ssh服务端;服务端端口号是22 ;数据传输是加密的,防止数据泄露;数据传输是压缩的。可以提高数据传输速度)
SSH的服务端和客户端:
客户端:xshell(一系列远程连接工具)
服务端:openssh
什么是OpenSSH?
openssh:是SSH协议的开源软件,系统自带的,并且默认设置为开机自启。
服务名称:sshd

SSH的主要配置文件:
都在etc/ssh下
ssh_config:针对客户端进行配置
sshd_config:针对服务端进行配置
SSH的组成结构:
远程连接、 远程登录、 远程复制、安全文件传输协议(sftp) 都是openssh的组成的一部分。
都是在传输层工作。
传输层协议(ssh-trans):服务认证。保密性以及完整性,数据压缩。
ssh-trans主要作用:提供加密技术,密码主机认证,只做认证主机,不执行用户认证。
用户认证则要由用户认证协议来完成。
用户认证协议(ssh-userauth):
特点:运行在传输层协议之上,开始认证用户之后,从底层的会话标识接收会话的标识符。认证会话标识符的所有权。建立私钥,进行安全通信。
用户认证协议(ssh-userauth)只认证用户,不负责处理连接。
用户连接由连接协议来完成。
连接协议(ssh-connect):
处理最终的连接请求,运行在用户协议之上,提供了交互式登陆界面,远程命令、数据转发。
SSH远程登录(命令行方式)
命令行方式的远程登陆:
ssh root@192.168.233.10
root不是本机用户,而是要登陆的用户
@固定格式
192.168.233.10 要登陆的服务器的IP地址
ssh -p 1002 root@192.168.233.10
非默认端口22 要用 -p 端口号
ssh的访问控制:
AllowUSers:允许用户
DenyUsers:拒绝用户(只要拒绝所有主机上都登陆不了)

SSH远程复制(scp):重点 工作中很好用

scp 远程复制,从别的主机把文件或者目录,复制到本机。

命令:scp root@192.168.233.20:/opt/ky30.txt /opt/rh

scp:远程复制的命令

root:登陆主机的用户

@固定格式

192.168.233.20:需要登录主机的IP地址

:后跟路径

/opt/ky30.txt :第一个路径是登陆主机的路径下的文件名或目录名

/opt/rh:第二个路径是要复制到本机的路径

非默认端口22 要用 -P 端口号

scp -P 1002 root@192.168.233.20:/opt/ky30.txt /opt/rh

复制目录:
scp -r
非默认端口22 要用 -P 端口号
scp -rP 1002 root@192.168.233.20:/opt/ky30 /opt

SFTP
sftp:安全的ftp,使用了基于ssh协议的加密和解密技术端口号默认也是22,所以传输效率要比传统的ftp要慢,但是安全性要更高,语法与ftp一样
命令:
sftp root@192.168.
192.168.:需要登录主机的IP地址
非默认端口22 要用 -P 端口号
sftp -P 10022 root@192.168.
SSH密钥对
ssh除了验证用户密码之外,还有密钥对验证(即公钥和私钥,只有公钥和私钥相互匹配才可以正常使用)
因为服务器用户的密码,可以通过暴力破解的方式破解,所以需要产生密钥对要求提供匹配的密钥信息才能通过验证。
密钥对设置流程:
1.客户端创建一个密钥文件
2.密钥文件传输到服务端的指定位置
3远程登陆时,系统将使用密钥对进行验证,实现免交互登录。增强了一定的安全性
当密码验证和密钥验证都开启,服务器会优先使用密钥对验证。
vim /etc/sshd_config
密钥加密方式:
ecdsa ;rsa; dsa
一般用ecdsa
ssh-keygen -t ecdsa
id_ecdsa:私钥文件
id_ecdsa.pub:公钥文件
向服务器传公钥:ssh-copy -i id_ecdsa.pub root@192.168
实现免交户:ssh-agent bash
ssh-add
TCP wrappers 访问控制:
tcp 包裹 tcp服务,代为监听tcp服务程序的端口
要先通过tcp wrappers的安全机制,才能真正访问程序
只能针对使用tcp协议的服务。
对应的两个策略文件
/etc/hosts.allow:允许个别,拒绝所有
/etc/hosts.deny:允许所有,拒绝个别
实验:
实验一:把一个用户同时允许和拒绝远程连接访问控制
cat /etc/passwd:查看用户信息
在这里插入图片描述
vim /etc/ssh/sshd_config:对服务端进行配置
在这里插入图片描述
systemctl restart sshd:重启ssh服务(修改配置文件后一定要重启服务)
使用另一台机器进行访问:
用mytest用户远程访问
ssh mytest@20.0.0.101
解释说明:
mytest不是本机用户,而是要登陆的用户
@固定格式
20.0.0.101 要登陆的服务器的IP地址
在这里插入图片描述
由于mytest用户设置的是允许登录,所以一切正常
接下来我们使用mytest1在另一台机器上远程登录试试看:
ssh mytest1@20.0.0.101
在这里插入图片描述
在这里插入图片描述
登陆不成功,由此可见,把一个用户同时允许和拒绝,这个用户是无法正常登陆的,相当于是直接拒绝的。设定的允许登录则无效。等待片刻后在xshell里面打开一个新的窗口,xsell连接工具会出错,一直提示ssh服务器拒绝了密码,请再试一次。即使你密码是正确的也无法正常连接。所以注意切记不要把一个用户同时允许和拒绝!!!!

实验二:SFTP的上传和下载,上传文件的默认位置是哪,下载的文件下载到哪里去了
把IP地址20.0.0.101充当服务器,在一台机器上充当客户端(20.0.0.100)用sftp下载文件
sftp root@20.0.0.101

get anaconda-ks.cfg
在这里插入图片描述
在这里插入图片描述
查看:anaconda-ks.cfg 已经存在,并且保存在本机root用户的根目录
在这里插入图片描述
上传:
在客户端(20.0.0.100)根目录创建在111222 文件,上传至服务端(20.0.0.101)
put 111222
在这里插入图片描述
上传完成:在服务端查找find -name 111222
在这里插入图片描述
上传的文件被保存在opt目录下
实验三:密钥对 rsa 密钥对实现免交互登录
Vim /etc/ssh/sshd_config
在这里插入图片描述
将my1(20.0.0.101)设为服务端,my2(20.0.0.100)设为客户端
首先在客户端上生成rsa加密格式的密钥对:ssh-keygen -t rsa
在这里插入图片描述cd .ssh
在这里插入图片描述
id_rsa :私钥文件
id_rsa.pub:公钥文件
将公钥文件传给服务器即可(私钥也行):ssh-copy-id -i id_rsa.pub root@20.0.0.101(ssh-copy-id 把本地主机的公钥复制到远程主机的 authorized_keys 文件中)
在这里插入图片描述
最后一步:实现免交互
ssh-agent bash(用于启动一个新的 Bash shell,并在该 shell 中启动 SSH Agent。SSH Agent 是一个身份验证代理,用于管理和缓存 SSH 密钥,可以在需要时自动提供身份验证,从而实现免密码登录等功能。)
ssh-add(将 SSH 私钥添加到 SSH Agent 的命令。SSH Agent身份验证代理,管理和缓存SSH密钥)
在这里插入图片描述
至此完成免交互登录:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值