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服务体系
需求描述
允许用户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为网站服务器
修改sshd_config配置文件中的内容
监听22端口
监听地址
使用SSH V2协议
禁用DNS反向解析
禁止空密码用户登录
验证时间2分钟,禁止root用户登录
最大重试6次
启用密码验证
启用密钥验证,指定公钥库数据文件
只允许wzadm和jacky用户登录,且jacky用户只能从IP地址192.168.3.110的主机远程登录
构建密钥对验证的SSH体系
1. 在客户机中创建密钥对
ssh-keygen命令
可用的加密算法:RSA或DSA
2. 将公钥文件上传至服务器
任何方式均可(共享、FTP、Email、SCP、……)
3. 在服务器中导入公钥文本
将公钥文本添加至目标用户的公钥库
默认公钥库位置:~/.ssh/authorized_keys
把wzadm用户锁定.这样wzadm用户就只能使用密钥验证了
jacky用户能从192.168.1.110远程登录网站服务器
但jacky用户不能在218.29.30.218的主机上远程登录网站服务器
其它用户不能远程登录网站服务器
wzadm用户远程登录的时候,直接要求使用密钥密码来登录了
其它用户还是无法远程登录