一、Openssh管理概述
openssh管理是一种安全通道协议,用来实现字符界面的远程的登录、远程复制、远程文本传输。
openssh对通信双方的数据进行了加密,具体有两种方法:
1、用户名和密码登录,这种方式比较常用
2、密钥对认证登录,可以实现免密登录
SSH端口:22,工作在网络层、传输层
SSH特点:1、数据在传输过程中是加密的
2、数据在传输过程中是压缩的
SSH分为服务端和客户端
服务端:Openssh
客户端:xshell,moba等远程连接工具
在Linux系统中的应用名称为:sshd
两个配置文件,即1、ssh_config :针对客户端的配置文件。2、sshd_config :针对服务端的配置文件。ssh监听地址 ,可以理解为ssh对外提供服务的地址。
二、 Openssh的功能
2、1 远程连接
ssh命令
远程连接:从客户机远程连接到目标主机,对目标主机进行操作。
-p :ssh默认端口是22,当服务端口被更改时,使用 -p指定ssh访问的端口
使用远程ssh服务从10022端口远程连接20.0.0.30主机root用户
2、2 远程复制
scp命令
远程复制:把目标主机的文件复制到主机
远程复制文件
远程复制目录
指定端口复制,如果把sshd服务端口修改了,比如把22改成10022
-rP:r 必须在前,P 必须在后,否则系统报错
2、3 远程文件传输
sftp :远程文件传输
sftp是加密的文件传输协议,传输效率低于ftp,安全性更高,语法与ftp一模一样。
下载:get ;上传:put
三、密钥对认证
3、1 密钥和密钥对
密钥匙一种参数,把名文转换为密文。转换成的密文是一种算法生成的参数。
密钥的形式分为两种:对称密钥和非对称密钥,SSH属于非对称密钥。
SSH密钥的常用加密方式有3种:1、RSA;2、ECDSA;3、DSA
密钥对由两个相关联的密钥组成:公钥和私钥。
1、加密和解密:公钥用于加密数据,私钥用于解密数据。发送方使用接收方的公钥来加密消息,只有接收方持有的私钥才能解密该消息。这种方式确保了即使在不安全的通信渠道上,只有授权的接收方能够读取消息内容。
2、数字签名:私钥可用于生成数字签名,公钥用于验证数字签名。发送方使用私钥对消息进行签名,接收方使用发送方的公钥来验证签名。这确保了消息的完整性和真实性,接收方可以确定消息确实来自于发送方且未被篡改。
3、身份验证:通过证明持有与其身份相关联的私钥,个体可以验证其身份。例如,Web 服务器可以使用数字证书(包含公钥),以证明其身份。客户端可以使用服务器的公钥来验证其身份,确保其连接到了正确的服务器而不是中间人攻击者。
4、安全通信:密钥对可用于建立安全通信渠道,如 SSL/TLS 协议。客户端和服务器之间的通信可以通过使用密钥对来加密和解密数据,从而保护数据免受窃听和篡改。
总的来说,密钥对的作用是确保数据的保密性、完整性和真实性,以及建立安全的通信渠道。
3、2 免密登录
以ecdsa为例
ssh -keygen :生成密钥文件 ;-t :选择加密方式
在 /root/.ssh/下生成两个文件,私钥文件id_ecdsa,公钥文件id_ecdsa.pub
ssh-copy-id :将本地计算机上的 SSH 公钥添加到远程计算机的授权密钥列表中
-i:指定要复制的公钥文件,默认情况下它会查找 ~/.ssh/id_rsa.pub 或 ~/.ssh/id_dsa.pub 文件。
-p:指定远程 SSH 端口,默认为 22。
-o:在复制公钥时传递给 ssh 命令的选项。这允许你传递额外的选项,比如 -o "ProxyCommand=..."。
-f:复制公钥到远程主机的指定文件,默认是 ~/.ssh/authorized_keys。
3、3 xshell 免密登录
使用远程连接工具xshell通过密钥实现免密登录,根据上文知道需要把本地xshell生成的密钥添加到要登录主机的授权密钥列表中去。所以这里用xshell实现密钥免密登录的前提是,能够登录到要登录的主机进行配置。
配置流程:要通过密钥对实现免密登录主机test2@20.0.0.20/24
在xshell新建连接的界面选择设置
公钥上传到主机可用scp等远程复制,传输工具,上传后复制公钥到默认的ssh密钥保存目录 /root/.ssh,接下来配置
至此,实验结束。