配置OpenSSH/stelnet

news2025/1/12 4:48:48

其他远程连接工具:telent、realVNC、RSH、RCP等,SSH更加安全可靠

一、配置OpenSSH/stelnet

1.配置服务端

# vim /etc/ssh/sshd_config //修改ssh配置文件

Port 22 //监听端口

AddressFamily any //使用哪种地址簇,any包含v4、v6,inet表示IPv4,inet6表示IPv6

ListenAddress 1.1.1.1 //监听地址

Protocol 2 //ssh 协议号

LoginGraceTime 2m //登录验证时间2分钟,即提示输入密码界面保持时间。

PermitRootLogin yes //允许root用户登录

MaxAuthTries 3 //密码最大重试次数为3次

PermitEmptyPasswords no //禁止空密码用户登录

PasswordAuthentication yes //进行密码验证

PubkeyAuthentication yes //进行密钥对验证

AuthorizedKeysFile     .ssh/authorized_keys //进行密钥对验证需要指定公钥库数据文件

AllowUsers zhangsan  lisi@1.1.1.1 //只允许张三李四登录,而且李四只能够从1.1.1.1登录,root用户将不能登录

#DenyUsers zhangsan lisi //拒绝张三李四登录 //与上一条不能同时使用

AllowGroups abc //只允许组abc登录

DenyGroups abc //只拒绝abc组登录

2.ssh客户端使用方法

命令程序ssh、scp、sftp

# yum install -y openssh-clients //客户端安装ssh客户端

ssh远程登录:

#ssh zhangsan@192.168.1.151 //使用linux系统登录其他linux系统

#ssh -p 8080 zhangsan@192.168.1.151 //指定端口进行登录

scp远程复制:

使用以下命令进行复制远程服务器数据到本地,远程服务器也需要安装openssh-clients

#scp root@192.168.1.151:/etc/passwd /home/pwd.txt //将192.168.1.151上的passwd文件复制到本地取名为pwd.txt,指定端口跟-P

# scp -r root@192.168.1.151:/var /home/ //将151服务器上的目录/var 复制到本地home下  ,-r选项表示复制目录

使用以下命令将本地目录aaa复制到服务器的/mnt下:

# scp -r /home/aaa/ root@192.168.1.151:/mnt/

sftp上传下载文件:

# sftp root@192.168.1.151 //使用类似于ftp的交互式方式进行上传下载文件

Connecting to 192.168.1.151...

root@192.168.1.151's password':

sftp> ls //查看到的是远程服务器用户宿主目录的内容

sftp> put /home/pwd.txt //将本地pwd.txt上传到服务器的宿主目录中

sftp> put /home/pwd.txt /home/ //将本地pwd.txt上传到服务器的/home目录

sftp> get /home/pwd.txt //下载服务器/home/pwd.txt文件到本地"当前目录",指执行进入sftp连接服务器时所在的目录

sftp> get /home/pwd.txt /var //下载服务器/home/pwd.txt文件到本地/var目录

sftp> lcd /home //本地目录切换

sftp> cd /home //远程服务器目录切换

3.登录验证方式

ssh支持"密码登录"和"密钥对验证登录"两种方式:

密码验证:默认启用密码验证,使用系统密码进行验证

密钥对验证:要求提供相匹配的密钥信息才能够通过验证,安全性更高

Linux客户端使用密钥对验证案例:

客户机创建密钥

# ssh-keygen -t rsa 或者ecdsa等 //回车后第一个界面要求输入密钥存放路径,回车默认选择,第二次要求输入添加密码验证,可以直接回车跳过,

将客户机公钥发送至服务器,方法1:

# scp .ssh/id_rsa.pub root@192.168.1.151:/tmp

在服务器中导入公钥

# mkdir -p /home/lisi/.ssh

# cp /tmp/id_rsa.pub /home/lisi/.ssh/authorized_keys

# vim /etc/ssh/sshd_config

PubkeyAuthentication yes //进行密钥对验证

AuthorizedKeysFile     .ssh/authorized_keys //进行密钥对验证需要指定公钥库数据文件

# systemctl restart sshd

# ssh lisi@192.168.1.151 //如在创建密钥时设置有密码,那么回车后需要输入密码进行验证,否则直接登录进服务器

将客户机公钥发送至服务器,方法2:

# ssh-copy-id -i .ssh/id_rsa.pub wangwu@192.168.1.151 //直接将文件上传至服务器并进行添加到使用用户目录中

Windows 10客户端使用SecureCRT 7.3实现使用密钥对连接linux服务器

1.先使用root用户以密码验证方式远程连接至服务器

2.在客户端CRT终端中生成密钥对:

A.在CRT终端的菜单栏中点击”Options”--->”Global Options”--->”SSH2”

再点击以下红框中的按钮实现创建密钥对文件:

下一步后可以选择密钥算法类型,类型有以下图片中的三种,分别为:

RSA: 目前应用最普遍,也是最为经典的一个数字签名加密算法,但是签名长,
产生密钥很麻烦。

DSA: 用于签名,而 RSA 可用于签名和加密。

ECDSA:ECDSA算法是ECC+DSA的结合体,相较于RSA数字签名算法,速度快,强度高,签名短,前景乐观。

算法类型选择后可选输入对于密钥加密的密码:

在下图的第一、第二个框中输入相同的密码串,如:”123456”,则表示在以后使用密钥对登录服务器时还得同时输入该密码串,从而实现双重加密,更加安全。当然也可以让这两个框为空,则表示不需要再次输入密码,仅通过密钥对即可登录。

第三个框的内容记录了当前windows客户端登录用户及主机名。

输入密码串后接着下一步,选择算法长度,理论上来讲,值越高,算法强度越高,越安全:

点击下一步等待进度条读完后继续点击下一步进入最后步骤:

上图中,前两项分别选择为”标准密钥”和”基于openssh密钥”,区别在于选择第一项”标准密钥”的话,需要在服务器中通过:“ssh-keygen -i -f Identity.pub >> authorized_keys”将标准密钥转换为基于openssh的密钥才可使用。因此此处直接选择第二种”openssh key format”

接着就是该密钥对的存放位置,默认存放在当前系统登录用户家目录中的”文档”中。

当点击”完成”完成创建密钥对后即可在”文档”中查看到两个密钥对文件,如下图:

Identity文件自己使用,Identity.pub上传至服务器的某个用户家目录下,用于实现该用户在当前windows客户端中不用输入密码即可实现访问的功能。

3.服务器配置使用客户端的密钥对文件:

A.上传刚刚生成的密钥对.pub文件上传至服务器/home下,可通过共享,或者rz上传方式实现。

[root@db home]# pwd

/home

[root@db home]# ls

Identity.pub

B.创建用户,设置密码:

[root@db home]# useradd dashuaige

[root@db home]# echo "123456" | passwd --stdin dashuaige更改用户 dashuaige 的密码 。

passwd:所有的身份验证令牌已经成功更新。

C.将以上传到服务器/home下的windows客户端的公钥移动至用户的家目录中并改为默认名称:

[root@db home]# mkdir /home/dashuaige/.ssh

[root@db home]# mv Identity.pub /home/dashuaige/.ssh/authorized_keys

[root@db home]#

D.开启服务器基于密钥对验证功能:

[root@db home]# vim /etc/ssh/sshd_config

第一个红框表示为开启密钥对验证功能,将默认的#号删除即可

第二个红框表示密钥对验证的密钥文件位置,之前已经放在了普通用户家目录中的该位置。

重启sshd服务。

[root@db home]# systemctl restart sshd

E.客户端验证:

通过以下方式连接,可不需要用户密码即连接至服务器

由于之前在创建密钥对时为密钥对设置了密码串,因此此处需要输入密码串”123456”。

需要注意:通过以上设置,只有administrator用户才能够使用密钥对方式登录,而windows客户端其他用户需要重新配置秘钥对文件并设置服务器才能够使用密钥对方式登录。

且使用的服务器用户名为”dashuaige”,因为只有该用户的家目录中存在密钥对文件,如果希望通过服务器的其他用户名也使用密钥对方式登录的话,可以将”dashuaige”家目录中的密钥对文件复制到其他用户的家目录并重启sshd服务即可。

二、TCP_Wrappers  

TCP_Wrappers是一个工作在应用层的安全工具,它只能针对某些具体的应用或者服务起到一定的防护作用。

比如说ssh、telnet、FTP等服务的请求,都会先受到TCP_Wrappers的拦截。

工作原理:

TCP_Wrappers有一个TCP的守护进程叫作tcpd。以telnet为例,每当有telnet的连接请求时,tcpd即会截获请求,

先读取系统管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的telnet进程,由telnet完成后续工作;

如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供telnet服务。

设置访问控制策略

策略格式:服务列表:客户机地址列表

服务列表 ——

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

客户机地址列表

多个地址以逗号分隔,ALL表示所有地址

允许使用通配符 ? 和 *

网段地址,如 192.168.4.  或者 192.168.4.0/255.255.255.0

区域地址,如 .abc.com

注意:对于已经启用的程序,可能不会立即生效

策略的应用顺序

先检查hosts.allow,找到匹配则允许访问

否则再检查hosts.deny,找到则拒绝访问

若两个文件中均无匹配策略,则默认允许访问

配置文件格式写法:

sshd:192.168.1.0

sshd:192.168.1.

sshd:192.168.1.*

sshd,vtsftp:1.1.1.1

all:192.168.1.1

判断哪些程序可以使用该防火墙:

使用命令

# ldd /usr/sbin/sshd //在输出结果中出现了"libwrap"表示可以使用Wrappers防火墙

        linux-vdso.so.1 =>  (0x00007fffc01ff000)

        libfipscheck.so.1 => /lib64/libfipscheck.so.1 (0x00007fc2e519b000)

        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fc2e4f90000)

        libaudit.so.1 => /lib64/libaudit.so.1 (0x00007fc2e4d73000)

        libpam.so.0 => /lib64/libpam.so.0 (0x00007fc2e4b65000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007fc2e4961000)

        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fc2e4741000)

        libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fc2e43a7000)

        libutil.so.1 => /lib64/libutil.so.1 (0x00007fc2e41a4000)

        libz.so.1 => /lib64/libz.so.1 (0x00007fc2e3f8d000)

.................

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1661237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运行SpringBoot项目失败?异常显示Can‘t load IA 32-bit .dll on a AMD 64-bit platform,让我来看看~

原因是,我放入jdk的bin文件夹下的tcnative-1.dll文件是32位的,那么肯定是无法在AMD 64位平台上加载IA 32位.dll。但是网站上给出的都是32位呀,没有64位怎么办: 其实当我们把“tomcat-native-1.2.34-openssl-1.1.1o-win32-bin.zip”…

【C++】详细版 RAII技术的应用之智能指针(智能指针发展历程和简单模拟实现介绍)

目录 前言 一、智能指针有什么用? 二、什么是RAII(智能指针的底层思想)? 三、智能指针的发展历程以及模拟实现 1.auto_ptr(C98) 2.unique_ptr(C11) 3.shared_ptr(C11) 前言 C中…

Modown9.1主题无限制使用+Erphpdown17.1插件

Modown9.1主题无限制使用 1、Erphpdown17.1插件Modown9.1主题 2、送Modown主题详细教程。 1、Erphpdown插件和Modown主题无需激活 2、送的插件均无需激活 3、主题插件均不包更新 4、已亲测可以完美使用。 功能强大,适用于绝大多数虚拟资源站!物超所值&a…

智慧公厕:让厕所管理变得更智慧、高效、舒适!

公共厕所是城市的重要组成部分,但常常被忽视。它们的管理和养护往往面临着许多问题,例如卫生状况不佳、环境畏畏缩缩、设施老旧等。为了解决这些问题,智慧公厕应运而生。智慧公厕是一种全方位的应用解决方案,将科技与公共厕所管理…

RERCS系统-WDA+BOPF框架实战例子 PART 2-新建Root的子节点Node Element

1、通过事务码 BOBF进入Business Object Browser(业务对象浏览)页面; 2、输入debug 进入编辑模式; 3、双击对应的业务对象进入Business Object Detail Browser即业务对象数据浏览器 在Node Structure的Root中新建需要的SubNode子…

【C++】学习笔记——优先级队列

文章目录 十、优先级队列1. priority_queue的介绍2. 优先级队列如何使小的数据优先级高3. 仿函数介绍4. priority_queue的模拟实现 补: 反向迭代器未完待续 十、优先级队列 1. priority_queue的介绍 优先级队列 其实也不属于队列,它跟 stack 和 queue …

[Linux_IMX6ULL驱动开发]-GPIO子系统和Pinctrl子系统

目录 Pinctrl子系统的概念 GPIO子系统的概念 定义自己的GPIO节点 GPIO子系统的函数 引脚号的确定 基于GPIO子系统的驱动程序 驱动程序 设备树修改 之前我们进行驱动开发的时候,对于硬件的操作是依赖于ioremap对寄存器的物理地址进行映射,以此来达…

SpringBoot实现统一返回值+全局异常处理

在这里首先感谢的就是程序员老罗&#xff0c;从他的项目里面学到了这些东西。 首先就是去创建一个SpringBoot项目&#xff0c;这里我就不多做赘述了 封装一个统一返回对象 package com.example.demo.vo;public class ResponseVO<T> {private String status;private In…

数据驱动实战二

目标 掌握数据驱动的开发流程掌握如何读取JSON数据文件巩固PO模式 1. 案例 对TPshop网站的登录模块进行单元测试 1.1 实现步骤 编写测试用例采用PO模式的分层思想对页面进行封装编写测试脚本定义数据文件&#xff0c;实现参数化 1.2 用例设计 1.3 数据文件 {"login…

JVM调优—减少FullGC

背景 最近负责了一个审批流程新项目&#xff0c;带领了几个小伙伴&#xff0c;哼哧哼哧的干了3个月左右&#xff0c;终于在三月底完美上线了&#xff0c;好消息是线上客户用的很丝滑&#xff0c;除了几个非常规的业务提单之外&#xff0c;几乎没有什么大的问题&#xff0c;但是…

4D 成像毫米波雷达:新型传感器助力自动驾驶

1 感知是自动驾驶的首要环节&#xff0c;高性能传感器必不可少 感知环节负责对侦测、识别、跟踪目标&#xff0c;是自动驾驶实现的第一步。自动驾驶的实现&#xff0c;首先要能够准确理解驾驶环境信息&#xff0c;需要对交通主体、交通信号、环境物体等信息进行有效捕捉&#x…

【静态分析】软件分析课程实验A4-类层次结构分析与过程间常量传播

官网&#xff1a;作业 4&#xff1a;类层次结构分析与过程间常量传播 | Tai-e 参考&#xff1a;https://www.cnblogs.com/gonghr/p/17984124 ----------------------------------------------------------------------- 1 作业导览 为 Java 实现一个类层次结构分析&#xf…

249 基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法

基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法。最小熵反褶积(MED)&#xff0c;最优最小熵反卷积调整卷积 (OMEDA),多点最优最小熵解卷积调整&#xff08;Multipoint Optimal Minimum Entropy Deconvolution Adjusted&#xff0c;MOMEDA&#xff09;&#xff0c;最大相关峭…

【智能优化算法】蜜獾优化算法(Honey Badger Algorithm,HBA)

蜜獾优化算法(Honey Badger Algorithm,HBA)是期刊“MATHEMATICS AND COMPUTERS IN SIMULATION”&#xff08;IF 3.6&#xff09;的2022年智能优化算法 01.引言 蜜獾优化算法(Honey Badger Algorithm,HBA)受蜜獾智能觅食行为的启发&#xff0c;从数学上发展出一种求解优化问题的…

vue3实现动态表格

vue3结合element-plus实现动态表格&#xff0c;可添加、删除、对单行数据判断。 实现效果&#xff1a;查看源代码 实现代码&#xff1a; <div class"arrTable-Box"><el-table :data"tableData" border max-height"250"><el-t…

【强训笔记】day17

NO.1 思路&#xff1a;用一个字符串实现&#xff0c;stoi函数可以转化为数字并且去除前导0。 代码实现&#xff1a; #include <iostream> #include<string> using namespace std;string s;int main() {cin>>s;for(int i0;i<s.size();i){if(s[i]%20) s[…

大模型模型简化机器人训练;简单易用的 3D 工具Project Neo;特斯拉放出了擎天柱机器人最新训练视频

✨ 1: DrEureka 利用大语言模型自动化将机器人仿真环境训练结果转移到真实世界 DrEureka是一种利用大型语言模型&#xff08;LLMs&#xff09;自动化和加速从仿真&#xff08;sim&#xff09;到现实世界&#xff08;real&#xff09;转移的技术。在机器人技能学习领域&#x…

网络编程套接字和传输层tcp,udp协议

认识端口号 我们知道在网络数据传输的时候&#xff0c;在IP数据包头部有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。IP地址是帮助我们在网络中确定最终发送的主机&#xff0c;但是实际上数据应该发送到主机上指定的进程上的&#xff0c;所以我们不仅要确定主机&…

MultiBoot 和 QuickBoot

目录 MultiBoot简介MultiBoot 实现方式设置 bitstream 属性使用 ICAPE2 原语WBSTAR 寄存器定义 MultiBoot 工作流程生成mcs固化文件 Tcl 指令Fallback状态寄存器MultiBoot 正常加载状态看门狗1超时状态看门狗2超时状态CRC 错误和无 DESYNC 命令IDCODE 错误状态CRC 错误状态 Wat…

【AMBA Bus ACE 总线 8 -- ICache maintenance】

请阅读【AMBA Bus ACE 总线与Cache 专栏 】 欢迎学习:【嵌入式开发学习必备专栏】 文章目录 ACE ICache maintenanceACE ICache maintenance 图 1-1 当一个OS run 多个cpu的时候,根据调度算法的不同,OS 可以根据调度算法的不同分别 run 在某个具体的CPU上,因此,它们会有…