SSH是什么
-
ssh是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制功能
-
对通信数据进行了加密处理,用于远程管理(加密,压缩)
ps
- ssh 用的是tcp22端口
- TELNET用的是23端口
SSH 客户端:Putty Xshell CRT
ssh服务的默认配置文件:/etc/ssh/sshd_config ssh客户端的配置文件是/etc/ssh/ssh_config
如何查看开机是否自启sshd
systemctl is-enabled sshd
用户远程登录格式
ssh [-p 端口](端口不写就是默认22端口) [用户](用户不写就是当前用户)@服务端IP
配置PpenSSH 服务端
vim /etc/ssh/sshd_config
当我设置监听端口为223时
配置ssh配置文件白名单和黑名单
scp远程复制
- 上行复制
- 下行复制
配置密钥对验证
客户端和服务端是一对一的关系,不是指定的用户或者客户端登录是无效的
- 在客户端创建密钥对
ssh keygen -t rsa ecdsa dsa
- 把公钥文件导到ssh服务器
(1)手动 复制 公钥文件 id_rsa.pub的 内容 ,在服务端用户的家目录的 .ssh 目录中创建 authorized_keys文件并把客户端公钥文件粘贴复制到这个文件中
(2)自动 在客户端 ssh-copy-id-i 公钥文件 用户@服务端IP
- 在客户端 使用ssh 用户@服务端IP 登录服务端 使用密钥对私钥的密码进行验证
步骤
在客户端创建密钥对
将公钥文件上传至服务器
在客户端使用密钥认证
免交互
-
在当前连接中实现免交互登录 ssh-agent bash ssh-add
-
实现永久免交互 直接创建空密码的密钥来使用,就是上个实验
TCP Wrappers 访问控制
Tcp Wrappers 保护机制的两种实现方式
- 直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序
- 由其他网络服务程序使用libwrap.so.* 链接库,不需要运行tcpd程序,此方法的应用更加广泛,也更有效率
- /etc/hosts.allow 设置禁止访问tcp服务程序的策略
- /etc/hosts.deny 设置禁止访问tcp服务程序的策略
当拿到一个新的虚拟机该怎么优化
- 通过sudo授权管理添加普通用户,不用root用户
- 定时更新服务器时间
- 更改默认的ssh服务端口禁止root用户远程连接
- 配置国内yum源
- 关闭selinux及iptables
- 配置文件描述符的数量
- 精简关机启动服务
- 内核参数优化
- 更改字符集,用英文字符集,防止乱码
- 锁定关键系统文件
- 清空/etc/issue,去除系统及内核版本登录前的屏幕显示