一、ssh概述
- ssh是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制,远程文本传输。
- ssh对通信双方的数据进行了加密。
- xshell使用的是用户名和密码,密钥对认证方式(可以实现免密登录)
ssh:分为服务端和客户端
- 服务端:openssh
- 客户端:xhsell moba
- 系统中的应用名称:sshd
端口:22
数据传输的过程中是加密的,数据在传输过程中是压缩的
ssh_config:针对客户端的配置文件
sshd_config:针对服务端的配置文件
监听地址:对外提供服务的地址
若修改端口后,需要将防火墙与安全机制关闭
二、ssh常用用法
1、 远程复制:把目标主机192.168.10.20的/opt/12.txt文件复制到本机
scp root@192.168.10.20:/opt/12.txt /opt/
2、把目标主机192.168.10.20的/opt/12目录复制到本机
复制目录 -r
scp -r root@192.168.10.20:/opt/12 /opt/
3、把端口122目标主机192.168.10.20的/opt/12目录复制到本机
端口不是默认22 -P
scp -rP 122 root@192.168.10.20:/opt/12 /opt/
连用必须r
在前,P
在后,否则报错
三、sftp
sftp:远程文件传输协议
Openssh包含三个功能:远程连接、远程复制、文件传输
sftp是加密的文件传输协议,传输效率比ftp低,但是更安全,语法与ftp一样
sftp -P 指定端口
四、密钥对认证(免密登录)
密钥:密钥是一种参数,把明文转换成密文。转换成的密文是一种算法生成的参数。
密钥的形式:对称密码,非对称密钥
ssh属于非对称密钥
ssh的加密方式:RSA、ECDSA、DSA
加密的算法,可以指定
五、实验
实验一:免密登录的过程
test2-2 ip地址192.168.10.40
test1 ip地址192.168.10.20
实验1.1:
命令行实现test2-2使用ssh远程登录test1不需要输入密码免密登录
关闭防火墙,安全机制
1、生成ssh-keygen -t 加密算法 #指定加密文件的算法
[root@localhost ~]# ssh-keygen -t ecdsa #使用ECDSA方式进行加密
切换到/root/.ssh目录下
2、ssh-copy-id -i id_ecdsa.pub root@目标主机 (-p 1端口) #把公钥文件发送到对方主机 发送公钥即可访问对方主机
3、ssh-agent bash #把密钥对进行缓存,可以自动提供身份验证,从而实现免密登录
4、ssh-add #管理缓存,将秘钥对添加到本机上
使用ssh远程登录目标主机,无需输入密码。
实验1.2:
使用xhsell工具实现test2-2使用ssh远程登录test1不需要输入密码免密登录
test1的ip地址192.168.10.20
1、新建连接
2、输入用户名,确认
3、生成密钥
浏览选择用户密钥
点击生成,密钥类型选择一个加密方式,下一步
输入密码,下一步
保存文件到桌面,完成
xhsell工具使用结束
test2-2使用ssh远程连接test1
公钥上传到主机可用scp等远程复制、传输工具,上传后,复制公钥到默认的ssh
密钥保存目录/root/.ssh
,接下来进行配置:
cd /root/.ssh/
cat id_rsa_2048.pub >> authorized_keys
# 把公钥的内容输入到授权密钥列表中
[root@test2 .ssh]# chmod 600 authorized_keys # 对授权密钥列表授权 600 权限也只能600
即可进行免密进行登录。