远程访问及控制(SSH)

实验要求:在服务器端配置SSHD服务,在客户端使用多种方式连接。

实验步骤:
一、配置SSH服务端
SSH协议:为客户机提供安全的Shell环境,用于远程管理
默认端口:TCP 22
OpenSSH:服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config

服务端的配置
#SSHD默认已经装载,并启用了密码验证方式。
#更改配置是为了更安全的使用SSH远程连接。
#主配置文件为:/etc/ssh/sshd_config

服务器监听选项:
Port 22 //监听端口
Protocol 2 //协议版本
ListenAddress 192.168.1.1 //监听IP
UseDNS no //禁用DNS反向解析
远程访问及控制(SSH)_第1张图片
用户登录控制:
PermitRootLogin no //禁止root用户登录
PermitEmptyPasswords no //禁止空密码用户登录
LoginGraceTime 2m //限制用户必须在指定的时限内认证成功
MaxAuthTries 6 //最大重试次数
MaxSessions 10 //同一地址的最大连接数
StrictModes yes //权限验证
远程访问及控制(SSH)_第2张图片
如果只允许或者只拒绝少数用户登录可以使用:(#默认配置文件中没有需要手动添加)
AllowUsers 用户1 用户2
或者 DenyUsers 用户1 用户2
两条命令不可以同时使用,还可以同时限制用户的登录地址
如 AllowUsers 用户1@登录主机IP 用户2@登录主机IP

登录验证方式:(验证的都是本地用户账号)
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配

PasswordAuthentication yes //启用密码验证(#默认开启)
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件

密码验证和密钥对验证同时开启的情况下,优先使用密钥对验证。

二、使用SSH客户端连接
1.Linux客户端程序连接
#命令解释:user:表示为服务器本地的用户名
host:表示为服务器的IP或主机名
命令程序:ssh 、 scp 、 sftp

ssh命令 —— 远程安全登录
命令格式:
ssh user@host
如果服务端端口号更改可以使用 -p 指定端口号
远程访问及控制(SSH)_第3张图片
scp命令 —— 远程安全复制
命令格式:
下载: scp user@host:/要下载的文件 /下载到
上传: scp /要上传的文件 user@host:/上传到
如果服务端端口号更改可以使用 -P指定端口号
远程访问及控制(SSH)_第4张图片
sftp命令 —— 安全FTP上下载
命令格式:
sftp user@host
进入后:上传使用 : put /要上传的文件 /上传到服务哪里
下载使用: get /要下载文件 /下载到本地的哪里
退出时使用: bye
如果服务端端口号更改可以使用 -oPort= 指定端口号
远程访问及控制(SSH)_第5张图片

三、构建密钥对验证的SSH体系(服务器一定要开启密钥对验证)
1.在客户端创建密钥对
ssh-keygen -t ecdsa //生成密钥文件和私钥文件
远程访问及控制(SSH)_第6张图片
2.将公钥文件上传至服务器(只要上传到服务器即可,方式不限制)
在服务器中导入公钥文本(如果用于密钥对验证的本地用户没有创建.ssh文件要事先在其用户宿主目录下创建.ssh目录)
ssh-copy-id -i id_ecdsa.pub [email protected]
远程访问及控制(SSH)_第7张图片
远程访问及控制(SSH)_第8张图片
3.在客户端使用密钥对验证登录
注意事项,在客户端使用那个用户生成的密钥对,在使用密钥对验证时就一定要使用那个用户登录

免密钥登录(在现实环境下,确保电脑安全情况下使用)
ssh-agent bash 代理功能
ssh-add 添加密钥口令
在这里插入图片描述
在这里插入图片描述
四、TCP Wrappers访问控制
1、保护机制的实现方式
方式1:通过tcpd主程序对其他服务程序进行包装
方式2:有其他服务程序调用libwrap.so.*链接库

访问控制策略的配置文件:
允许策略:/etc/hosts.allow
拒绝策略:/etc/hosts.deny
策略格式: 服务列表:客户机地址列表

服务器列表:
多个服务以逗号分隔,ALL 表示所有服务

客户机地址列表:
多个地址以逗号分隔,ALL表示所有地址
允许使用通配符 ? 和 *
网段地址,如 192.168.4. 或者 192.168.4.0/255.255.255.0
区域地址,如 .benet.com

2、策略的应用顺序(Allow与deny检查顺序):
先allow中的,找到即允许访问
再找deny中的,找到即拒绝访问
如果没有allow也没有deny,则默认允许

3、配置实例:只希望192.168.1.1和192.168.2.0/24的网段主机可以访问sshd,其他地址拒绝
Vim /etc/hosts.allow
Sshd:192.168.1.1,192.168.2.*
Vim /etc/hosts.deny
Sshd:ALL

你可能感兴趣的:(SSH,远程访问)