什么是ssh
ssh是一个安全协议,在进行数据传输的过程中,会对数据包进行加密后再进行传输,确保数据传输安全。
ssh服务的主要功能
- 连接远程服务器的服务
- 对传输的数据进行加密处理
telnet和ssh的区别
ssh:使用在服务器领域
telnet:使用在交换机,路由器,防火墙等设备上
ssh:加密传输,安全。可以直接登陆root。
telnet:明文传输,不安全。不能直接登陆root。
ssh相关客户端指令
ssh
用于远程连接Linux服务器(linux底层)
使用示例:
ssh root@10.0.0.7
# 连接10.0.0.7,使用root用户。
scp
远程拷贝、全量
选项:
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-P:指定端口传输;
-r:以递归方式复制;
-l:指定宽带限制。(临时拷贝大文件需要使用)
使用示例:
# push
scp -rp ./* root@172.16.1.31:/data
# pull
scp -rp root@172.16.1.31:/data ./
sftp
用于远程传输,与xftp功能相同(开发使用较多)
ssh远程登陆方式
- 用户密码方式
容易被破解、复杂,容易忘记。 - 基于密钥的方式来实现
生成一堆拥有数学关系的密钥对。(公钥、私钥)
公钥解密,私钥加密。
公钥可以对外提供,对外开放。
私钥只能自己持有,不对外开放。
2.1 实现方法:
命令如下:
# 在当前目录下生成密钥文件
ssh-keygen -C ./
# 把私钥文件发送给目标用户
sh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
# -i表示发送哪个文件,这里的私钥文件推送给哪个用户,就可以实现哪个用户的免密登陆
ssh安全性配置
- 更改远程连接登陆的端口
- 禁止ROOT管理员直接登陆
- 密码认证方式改为密钥认证
- 重要服务不使用公网IP地址
- 使用防护墙限制来源IP地址
(主要需要注意的是跳板机上的安全配置)
修改的相关参数:
Port 端口号
PermitRootLogin 是否允许root用户直接远程登陆
PasswordAuthentication 是否允许使用密码直接远程登陆
UseDN5 是否禁止ssh进行dns反向解析
GSSAPIAuthentication 是否禁止GSS认证减少连接时产生的延迟