一、SSH基本概述
1.什么是SSH
SSH是一个安全协议,在数据进行传输时,会对数据报进行加密处理,加密后再进行传输,确保数据传输的安全性。
2.SSH服务主要功能
①提供远程连接服务器的服务
②对远程连接传输数据进行加密
3.远程连接中:SSH 与 Telnet 的区别
服务连接方式 | 服务数据传输 | 服务监听端口 | 服务登陆用户 |
---|---|---|---|
ssh | 加密 | 22/tcp | 默认支持root用户登录 |
telnet | 明文 | 23/tcp | 不支持root用户登录 |
使用:
ssh:服务器领域
telnet:交换机、路由器、防火墙 等这类设备
二、SSH相关命令
1.ssh 远程登录服务器命令
ssh -p22 root@10.0.0.61
-p 指定连接远程主机的端口
@前面为连接服务器的用户
@后面为连接远程服务器的IP地址
小结:如果不指定连接服务器的用户,那么会使用当前客户端的用户作为服务器的连接用户(一般会指定用户)
2.scp 远程拷贝(全量)
与rsync远程传输模式一样(推、拉)
选项:
-l 限速
-r 拷贝目录
-p 保持原有属性
-P 指定端口
#推 push
scp -rp /etc root@172.16.1.31:/data
#拉 pull
scp -rp root@172.16.1.31:/data /opt
#限速,8096/8=1024KB=1MB
scp -l 8096 /etc root@172.16.1.31:/data
3.sftp 远程传输 ----> XFTP 工具代替(开发用的居多)
rz不支持传输文件夹、同时不支持传输大于4个G的文件
XFTP 任意传输
三、SSH远程登录方式
1.用户密码
2.秘钥(公钥、私钥)
1.公钥:加密,对所有人开放
2.私钥:解密,只有自己持有
客户端通过秘钥远程连接服务器
#1.客户端生成秘钥对(公钥和私钥)
[root@manager ~]# ssh-keygen -C 注释信息
[root@manager ~]# ll ~/.ssh/
-rw------- 1 root root 1675 Apr 20 11:12 id_rsa
-rw-r--r-- 1 root root 399 Apr 20 11:12 id_rsa.pub
#2.将公钥推送至服务器
[root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.7
ssh-copy-id 拷贝公钥
-i 指定存放公钥的文件
#3.客户端远程连接服务器,不需要输入密码
[root@manager ~]# ssh root@10.0.0.7
[root@web01 ~]#
[root@web01 ~]# ll ~/.ssh/
-rw------- 1 root root 399 Apr 20 11:15 authorized_keys
-rw-r--r-- 1 root root 173 Apr 19 23:11 known_hosts
简单易用的堡垒机系统:Teleport
四、跳板机+秘钥
客户端通过跳板机免密连接内网服务器
winsows使用秘钥连接时注意:
~/.ssh 权限为700
~/.ssh/authorized_keys 权限为600
五、SSH远程连接功能安全优化
#配置文件 /etc/ssh/sshd-config
1.更改远程连接登陆的端口 Port
2.禁止ROOT管理员直接登录 PermitRootLogin no
3.密码认证方式改为密钥认证 PasswordAuthentication n(慎重)
4.重要服务不使用公网IP地址(都会使用)
5.使用防火墙限制来源IP地址
6.UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数
7.GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟