ssh概述
ssh介绍
ssh(secure shell):安全通道协议,主要用来实现字符界面的远程登陆、远程复制等功能
进程名:ssh
程序名:openssh 是一个开源软件,主要是为了适配linux系统
ssh分为客户端和服务端:
ssh客户端:基于网络层(转发数据包)和传输层(tcp协议) 例:xshell、moba
ssh服务端(默认端口号22) 例:服务器主机
ssh优点
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
ssh配置文件
ssh_config:配置客户端的相关设置
sshd_config:配置服务端的相关设置
ssh机能的组成部分
传输层协议【SSH-TRANS】
作用:提供服务器认证,保密以及完整性校验,提供数据压缩功能
注:ssh-trans只能基于主机进行认证,不能进行用户认证
用户认证协议【SSH-USERAUTH】
作用:提供用户鉴别功能
验证用户是否有登陆资格,此外还要验证用户名和密码是否输入正确
连接协议:验证完成之后,实现远程登录或者其他远程功能,远程命令执行
服务端配置文件位置/etc/ssh/sshd_config
#ListenAddress 不变 (监听地址)
#LoginGraceTime 2m (标识掉即可)
#PermitRootLogin NO (禁止root登录)
#MaxAuthTires 6 (最大密码输入次数)
相关命令:
ssh [用户名]@[IP地址] #远程连接命令行格式
ssh -p [端口号] [用户名]@[IP地址] #指定端口号远程连接
二、远程复制功能
scp
将远程主机的文件复制到本机(远程复制)从其他设备复制到本机
远程复制目录
命令:scp -r [用户名]@[IP地址]:[目录全路径] [要复制到本机的位置]
指定端口号并复制到指定主机的本地目录
命令:scp -P [端口号] [用户名]@[IP地址]:[目录全路径] [要复制到本机的位置]
SFTP命令
sftp是基于ssh的加密技术来的,传输效率比ftp低,但安全性更高,语法与ftp相同
命令:sftp [用户名]@[IP地址] #远程连接主机(加密)
指定端口号远程连接(加密)
命令:sftp -P [端口号] [用户名]@[IP地址] #指定端口号远程连接
在sftp的远程操作连接之中,也可以正常进行get下载和put上传等操作
用户登录限制
进行用户登录限制(允许或拒绝指定用户登录权限)
AllowUsers #允许指定用户登录(可多用户指定,多用户之间用逗号隔开)
DenyUsers #拒绝指定用户登录(可多用户指定,多用户之间用逗号隔开)
@[IP地址] #只能从指定的终端允许或者拒绝登录
具体修改配置文件位置在/etc/ssh/sshd_config内修改(在最下面一行进行编辑)
格式:AllowUsers/DenyUsers [用户名]
之后即可重启服务,配置文件生效
命令:systemctl restart sshd
DenyUsers指定终端无用,直接拒绝指定用户,允许的是本地的用户,拒绝的是第三方用户
三、密钥对
密钥
密钥对的加密方式(rsa,ECDSA,DSA)
① 用户账户登录密码 ② 密钥登入
密钥对在ssh当中就是一个参数,铭文转换为密文或者密文转换为铭文的算法输入中的参数,分为对称密钥,非对称密钥
在配置文件/etc/ssh/sshd_config中
PasswordAuthentication #启动密码验证
PubkeyAuthentication #开启密钥验证(默认开启)
AuthorizedkeysFile #指定公钥库的文件
创建密钥对步骤
① 指定加密方式创建密钥对
命令:ssh-keygen -t ecdsa
② 在家目录下查看是否生成对应文件
命令:ls -a
③查看.ssh内是否正常生成了两个文件
命令:ls
④ 将公钥文件,传给另一台虚拟机
命令:ssh-copy-id -i id_rsa.pub [用户名]@[IP地址]
⑤ 启动并添加密钥对
命令:ssh-agent bash
ssh-add
⑥ 登录另一台虚拟机,看看是否成功
命令:ssh [用户名]@[IP地址]
Tcp Wrappers
Tcp Wrappers相当于Tcp专用的防火墙,可以监听端口(只针对Tcp服务)
Tcp服务程序的端口,要匹配Tcp Wrappers是否开放端口才能进行访问,不需要运行tcpd程序
设置允许和拒绝的配置文件在/etc/hosts.deny(拒绝)或者/etc/hosts.allow(允许)
二、NFS服务
NFS共享服务
NFS共享储存文件(NFS网络文件系统)
① 依赖于RPC(远程过程调用)
② 需要安装nfs-utils和rpcbind软件包
nfs-utils 端口号:2049 TCP传输协议
rpcbind 端口号:111 TCP传输协议
③ 系统服务,网络上共享文件系统的协议
④ 允许多个服务器之间通过网络共享文件和目录
⑤ 许多操作系统的标配服务
既有服务端也有客户端
服务端:将指定的目录标记为共享目录,给赋予访问权限,赋予指定目录全部权限
客户端:通过NFS协议,发送请求到服务器,获取操作这个共享目录的权限对服务器执行的所有操作,会影响到所有客户端
NFS优点
① 多个客户端可以同时访问和共享同一文件系统,方便操作
② 通明,不关心底层网络细节,能访问即可
③ 性能出众,访问速度较快
④ 可靠性,NFS确保提供一些机制,保留文件完整和一致性(写同步)
应用场景
共享文件服务器,集群环境或分布式储存系统(NFS共享池)
NFS优点
① 多个客户端可以同时访问和共享同一文件系统,方便操作
② 通明,不关心底层网络细节,能访问即可
③ 性能出众,访问速度较快
④ 可靠性,NFS确保提供一些机制,保留文件完整和一致性(写同步)
应用场景
共享文件服务器,集群环境或分布式储存系统(NFS共享池)
三、创建共享文件步骤
① 创建共享目录
命令:mkdir [共享目录名]
② 赋予共享目录全部权限
命令:chmod 777 [共享目录名]
③ 修改配置文件
命令:vim /etc/exports
④ 开启服务(先开启rpcbind,再开启nfs-utils)
命令:systemctl start rpcbind
systemctl start nfs
⑤ 关闭防火墙和安全机制
命令:systemctl stop firewalld
setenforce 0
⑥ 查看共享目录是否创建成功
命令:showmount -e
⑦ 进入第二台虚拟机查看共享目录
命令:showmount -e [第一台虚拟机的IP地址]
⑧ 在第二台虚拟机中也创建一个共享目录
命令:mkdir [目录名]
⑨ 将第一台的共享目录挂载到第二台的共享目录上
命令:mount [第一台虚拟机IP地址]:[共享目录全路径] [第二台虚拟机共享目录全路径]
⑩ 回到第一个虚拟机中的共享目录创建文件
命令:echo 123 > 123
最后回到第二台虚拟机中看是否有文件,有相同文件即是共享成功