【远程访问及控制】

本文详细介绍了OpenSSH服务器的配置,包括SSH远程管理、端口修改、用户登录设置以及两种验证方式——密码验证和密钥对验证。实验部分涉及白名单和黑名单的设置,以及如何使用SSH客户端进行远程登录和文件复制。文章还阐述了如何创建和使用密钥对进行无密码登录,并介绍了ssh-agent和ssh-copy-id的使用,以实现SSH会话代理。
摘要由CSDN通过智能技术生成


一、OpenSSH服务器

1.1、SSH远程管理

SSH:
是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。

SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性.
字号4

                         网络
SSH客户端 <----------------------------------> SSH服务端
            数据传输是加密的,可以防止信息泄漏
            数据传输是压缩的,可以提高传输速度

SSH客户端: Putty、Xshel1、 CRT
SSH服条端: OpenSSH

OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。

rpm -q openssh
查看这个软件有没有安装

在这里插入图片描述

systemctl status sshd
可以查看开机有没有自动启动

在这里插入图片描述

systemctl is-enabled sshd
简介查看有没有开机自动启动,出现enable就是开机自启了

在这里插入图片描述如果没有出现enable就
执行“svstemctl start sshd”命令即可启动 sshd 服务

1.2、ssh服务器的端口

sshd 服务默认使用的是TCP的 22端口
sshd  服务的默认配置文件是/etc/ssh/sshd confia

在这里插入图片描述

vim sshd_config
进入服务端的配置文件

在这里插入图片描述

禁止无密码用户登录
在这里插入图片描述禁止用户反向解析,提高服务器的响应速度
在这里插入图片描述
在这里插入图片描述

1.3、修改端口号

在这里插入图片描述

netstat -natp | grep sshd 
来查看当前端口号,发现已经改为2345端口号了,但是源端口号没有终端

在这里插入图片描述
关闭xshell就发现连接不起来了

在这里插入图片描述
点击主机的属性,将端口号设置为刚刚修改的2345端口号

在这里插入图片描述

netstat -natp | grep sshd

查看到这个端口号已经设置为2345端口

在这里插入图片描述

ssh root@192.168.102.10 -p 2345
root 是指定用户
@192.168.102.10 是指定对方主机的IP地址
-p 是指定对应主机的端口号

在这里插入图片描述

也可以在源主机上查看到有一个192.168.102.20的主机连接到这
在这里插入图片描述

vim /etc/ssh/sshd_config

在这里插入图片描述

systemctl restart sshd
设置完后重启网卡
netstat -natp | grep sshd
就可以看到已经设置本地的地址了,192.168.102.102345

在这里插入图片描述

vim /etc/ssh/sshd_config

在这里插入图片描述设置完后root用户就不能打开了
在这里插入图片描述
则除了root用户其他用户能登录
在这里插入图片描述

ssh 192.168.102.10 -p 2345
没有输入用户,按下enter后就会自动补全当前用户

在这里插入图片描述

设置把空密码用户不允许登录
在这里插入图片描述
设置一个空密码用户
在这里插入图片描述设置完不允许空密码登录后,这个空密码的用户就登录不了了
在这里插入图片描述

设置空密码用户允许登录
在这里插入图片描述

设置完成后,可以看见空密码用户可以登录
在这里插入图片描述

1.4、设置用户登录

只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为192.168.102.10的主机远程登录
AllowUsers zhangsan lisi wangwu@102.168.102.10
多个用户以空格分隔

禁止某些用户登录,用法于AllowUsers 类似 (注意不要同时使用)

DenyUsers 用户名

二、实验

先设置几个实验用户,配置密码
在这里插入图片描述

2.1、设置白名单

在源主机里设置了让wangwu用户只能登录在192.168.102.10配置的主机
在这里插入图片描述
所以wangwu用户就登录不了其他的主机
在这里插入图片描述

则其他用户就可以随意登录不同的主机
在这里插入图片描述

在这里插入图片描述在192.168.102.10的主机里设置wangwu这个用户就可以登录
在这里插入图片描述
在任意主机上登录wolong用户,不能登录
因为在白名单里没有设置wolong

在这里插入图片描述

root用户也不在白名单里面所以也登录不了在这里插入图片描述
在白名单里在设置一个root用户
在这里插入图片描述
白名单设置完后,root用户就可以登录了
在这里插入图片描述

2.2、设置黑名单

DenyUsers  目标用户

在这里插入图片描述
设置完后在黑名单里的用户就登录不了了

在这里插入图片描述

为什么wangwu能登录
因为在黑名单里设置的是在192.168.102.10的主机里不能登录,其他的主机可以登录

在这里插入图片描述

三、sshd 服务支持两种验证方式:

3.1、密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

查看secure文件,查看主机有没有被攻击
看见被攻击了,就把那些登录的IP地址给放进黑名单里

在这里插入图片描述

3.2、密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

公钥和私钥的关系:

·公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
·不能根据一个密钥来推算出另一个密钥。
·公钥对外公开,私钥只有私钥的持有人才知道。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式


vim /etc/ssh/sshd config
PasswordAuthentication yes
#启用密码验证

PubkeyAuthentication yes
#启用密钥对验证

AuthorizedKeysFile .ssh/authorized keys
#指定公钥库文件

在里面找到公钥文件
在这里插入图片描述

四、使用SSH客户端程序

4.1、ssh 远程登录

ssh [选项]  用户@主机的IP地址
ssh 使用小p来指定端口号

当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。

在这里插入图片描述

在.ssh目录里的known_hosts文件存放验证信息,如果与这个文件里的信息不一致就禁止访问,一致就同意访问
在这里插入图片描述ssh命令可以使一台主机快速执行一个命令,并且执行完后就退出
在这里插入图片描述
ssh命令也可以实现远程主机删除本机的文件

在这里插入图片描述
在这里插入图片描述

4.2、scp 远程复制

1、下行复制

将远程主机中的文件复制到本机

scp root@192.168.102.20:/opt/john-1.8.0.tar.gz ./

192.168.102.20   表示对方主机的IP地址

:/opt/表示对方的目录,后面跟上要复制的目录文件
 绝对路径

在最后面加上 . / 表示将对方主机的opt目录里的文件复制到当前主机目录里

在这里插入图片描述

2、上行复制

将本机的目录复制到远程主机上

scp -P 2345 -r dznb/ 192.168.102.10:/root/

- 大P 指定对方的端口号

- r 将本机的目录复制到远程主机

dznb/  本机的目录

192.168.102.10   远程主机的IP地址

:/root/   指定复制到远程主机的 root 目录里,绝对路径

在这里插入图片描述在这里插入图片描述
如果有同名目录的话,复制的内容会直接覆盖

在这里插入图片描述在这里插入图片描述

3、使用双撇号和pwd命令来快速获取目录进行复制

在这里插入图片描述
直接按下波浪号键,不加shift键

在这里插入图片描述在这里插入图片描述

4.3、sftp安全 的FTP文件传输

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样

sftp -P 2345 root@192.168.102.10
在sftp命令里,要使用大P来指定对方主机的端口号
root 对方的root用户

在这里插入图片描述也可以使用put命令来使远程主机上传文件到本机
在这里插入图片描述在这里插入图片描述

sftp > get 文件名     下载文件到ftp目录
sftp > put 文件名     上传文件到ftp目录
sftp > quit          退出

五、配置密钥对验证

5.1、在客户端创建密钥对

通过ssh-keygen工具为当前用户建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的"-t"选项用于指定算法类型)

在这里插入图片描述
将公钥文件复制到192.168.102.10主机上
在这里插入图片描述
在目标主机上查看到公钥文件,使用cat查看公钥文件的密钥信息
在这里插入图片描述

5.2、实验zhangsan用户用密钥对登录

你想要哪个客户端使用哪个用户登录,就把公钥文件导入到该文件的家目录里
现在使用zhangsan用户密钥登录

在这里插入图片描述创建的文件名必须是authorized_keys
在这里插入图片描述

在当前用户的家目录里设置一个.shh的目录并且修改权限为7.0.0
在这里插入图片描述

cat id_rsa.pub >> /home/zhangsan/.ssh/authorized_keys

重定向输出到自己的家目录里的zhangsan用户到.ssh目录里创建一个authorized_keys文件

请添加图片描述
把文件的使用权限设定为6.0.0的使用权限
在这里插入图片描述

5.4、另一种快速实现公钥文件的复制

ssh-copy-id -p 2345 -i id_rsa.pub zhangsan@192.168.102.10
-i id_rsa.pub 指定公钥文件
-p 指定端口号

在这里插入图片描述
自动设置目录和文件的权限
在这里插入图片描述
接下来就可以使用密钥对的密码登录了
在这里插入图片描述

六、ssh密钥对面交互登录

6.1、使用没有密码的密钥对

ssh-keygen -t rsa/ecdsa    一路回车,不设置密码

ssh-copy-id -i 公钥文件    目标主机用户@目标主机IP/主机名

6.2、创建ssh会话代理(只能在当前会话中有效)

ssh-agent bash  在当前登录环境中实现一个代理
ssh-add         输入这个密钥对的密码

输入以上命令后就可以实现免密码登录,只能在当前会话中有效退出当前会话就会消失这个代理
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值