SSH协议

  • 为客户机提供安全的Shell环境,用于远程管理

  • 默认端口:TCP 22

OpenSSH

  • 服务名称:sshd

  • 服务端主程序:/usr/sbin/sshd

  • 客户端主程序:/usr/bin/ssh

  • 服务端配置文件:/etc/ssh/sshd_config

  • 客户端配置文件:/etc/ssh/ssh_config


[root@steven ~]# vi /etc/ssh/sshd_config
……
Port 22                                   #端口号
Protocol 2                                #协议版本
ListenAddress 192.168.1.254               #监听IP地址
UseDNS no                                 #禁用反向解析
PermitRootLogin no                        #禁止ROOT用户登录
PermitEmptyPasswords no                   #禁止空密码用户登录
LoginGraceTime 2m                         #登录时间
MaxAuthTries 6                            #连接次数
PasswordAuthentication  yes               #启用密码验证
PubkeyAuthentication  yes                 #启用密钥对验证
AuthorizedKeysFile  .ssh/authorized_keys  #指定公钥库位置


ssh命令 —— 远程安全登录

  • 格式:ssh user@host

scp命令 —— 远程安全复制

  • 格式1:scp user@host:file1 file2

  • 格式2:scp file1 user@host:file2

sftp命令 —— 安全FTP上下载

  • 格式:sftp user@host


构建密钥对验证的SSH体系

SSH远程访问及控制_第1张图片


实验案例:构建安全的SSH服务体系

SSH远程访问及控制_第2张图片

需求描述

  • 允许用户wzadm从任意地址登陆,采用密钥对验证

  • 允许用户jacky从主机192.168.3.110登陆

  • 禁止其他所有用户远程登录

实现思路

  • 同时启用密码验证、密钥对验证

  • 锁定wzadm用户,改以密钥对方式进行验证

  • 使用AllowUser配置,仅允许wzadm、jacky用户登录


这里我用GNS3搭建了路由器充当网关服务器.两台PC分配桥到了VMnet1(192.168.3.0)和VMnet8(218.29.30.0)

正确配置了各主机的网络参数,添加了测试用户jacky,wzadm. redhat 5为internet测试用机.redhat 6为网站服务器

SSH远程访问及控制_第3张图片


修改sshd_config配置文件中的内容

173359890.png

173400208.png监听22端口

173400401.png监听地址

173400524.png使用SSH V2协议

173400659.png禁用DNS反向解析

173400728.png禁止空密码用户登录

174047554.png验证时间2分钟,禁止root用户登录

173401849.png最大重试6次

173402226.png启用密码验证

173402388.png启用密钥验证,指定公钥库数据文件

173402306.png只允许wzadm和jacky用户登录,且jacky用户只能从IP地址192.168.3.110的主机远程登录


构建密钥对验证的SSH体系

1. 在客户机中创建密钥对

  • ssh-keygen命令

  • 可用的加密算法:RSA或DSA

SSH远程访问及控制_第4张图片


2. 将公钥文件上传至服务器

  • 任何方式均可(共享、FTP、Email、SCP、……)

SSH远程访问及控制_第5张图片


3. 在服务器中导入公钥文本

  • 将公钥文本添加至目标用户的公钥库

  • 默认公钥库位置:~/.ssh/authorized_keys

SSH远程访问及控制_第6张图片


wzadm用户锁定.这样wzadm用户就只能使用密钥验证了

174502544.png


jacky用户能从192.168.1.110远程登录网站服务器

SSH远程访问及控制_第7张图片

SSH远程访问及控制_第8张图片

173403114.png


jacky用户不能在218.29.30.218的主机上远程登录网站服务器

SSH远程访问及控制_第9张图片


其它用户不能远程登录网站服务器

SSH远程访问及控制_第10张图片


SSH远程访问及控制_第11张图片

SSH远程访问及控制_第12张图片


wzadm用户远程登录的时候,直接要求使用密钥密码来登录了

173404348.png


其它用户还是无法远程登录

SSH远程访问及控制_第13张图片