技术栈
linux远程访问及控制
西华彭于晏!
2024-06-17 18:53
补充:
终端:接收用户的指令
TTY终端
虚拟终端
ssh:22端口号,加密。
telnet:23端口号,不加密。
解释器:shell
SSH 远程管理
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的 Telent(远程登录)、RSH(Remote Shell,远程执行命令)、RCP(Remote File Copy,远程文件复制)等应用相比,SSH 协议提供了更好的安全性。
本节将以 OpenSSH 为例,介绍 Linux 服务器的远程管理及安全控制。OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。关于 OpenSSH 项目的更多内容可以访问其官方网站
OpenSSH
。
配置 OpenSSH 服务端
在 CentOS 7.3 系统中,OpenSSH 服务器由 openssh、openssh-server 等软件包提供(默认已安装),并已将 sshd 添加为标准的系统服务。执行"systemctl start sshd"命令即可启动 sshd 服务,包括 root 在内的大部分用户(只要拥有合法的登录 Shell)都可以远程登录系统。
sshd 服务的默认配置文件是/etc/ssh/sshd_config,正确调整相关配置项,可以进一步提高 sshd 远程登录的安全性。下面介绍最常用的一些配置项,关于 sshd_config 文件的更多配置可参考 man 手册页。
1、服务监听选项
sshd 服务使用的默认端口号为 22,必要时建议修改此端口号,并指定监听服务的具体IP 地址,以提高在网络中的隐蔽性。除此之外,SSH 协议的版本选用 V2 比 V1 的安全性要更好,禁用 DNS 反向解析可以提高服务器的响应速度
2、用户登录控制
sshd 服务默认允许 root 用户登录,但在 Internet 中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登入,进入安全 Shell 环境后,根据实际需要使用 su 命令切换为 root 用户。关于 sshd 服务的用户登录控制,通常应禁止 root 用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为 2 分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。
ssh服务还可以做限制,可以指定用户登录,还可以对ip地址进行限制
echo "密码" | passwd --stdin +用户名,可以批量修改用户密码。一般在脚本里使用
使用这个命令,可以修改登录该用户的时候的密码尝试次数。
3、登录验证方式
对于服务器的远程管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。
sshd 服务支持两种验证方式------密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。
密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最
为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来
看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。
密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一
对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录
时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全
性。该方式不易被假冒,且可以免交互登录,在 Shell 中被广泛使用。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较
高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。其中,公钥库文件用来保存多个客户端上传的公钥文本,以便与客户端本地的私钥文件进行匹配。
二、使用 SSH 客户端程序
在 CentOS 7.3 系统中,OpenSSH 客户端由 openssh-clients 软件包提供(默认已安装),其中包括 ssh 远程登录命令,以及 scp、sftp 远程复制和文件传输命令等。实际上,任何支持 SSH 协议的客户端程序都可以与 OpenSSH 服务器进行通信,如 Windows 平台中的 Xshell、SecureCRT、Putty 等图形工具
1、ssh 远程登录
通过 ssh 命令可以远程登录 sshd 服务,为用户提供一个安全的 Shell 环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。当用户第一次登录 SSH 服务器时,必须接受服务器发来的 ECDSA 密钥(根据提示输入"yes")后才能继续验证。接收的密钥信息将保存到~/.ssh/known_hosts 文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了,就好像把客户端的显示器键盘连接到服务器一样
如果 sshd 服务器使用了非默认的端口号(如 2345),则在登录时必须通过"-p"选项指定
端口号。
2、scp 远程复制
通过 scp 命令可以利用 SSH 安全连接与远程主机相互复制文件。使用 scp 命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可。
从(192.168.10.101主机)的/opt/下复制一份aaa的文件放到/root目录下。
(scp)
如果对端更改了端口,可以加个选项,继续下载。
如果对端更改了端口,可以加个选项,继续上传。
上传当前目录下的aaa到(192.168.10.101主机)的/root下。 (scp)
登录到对方主机,查看对方的文件,下载对方的(aaa)到我的/opt下并创建一个文件名为(ali) (sftp)
登录到对方主机,将我当前目录下的文件上传对方的/opt下(sftp)
3、sftp 安全 FTP
通过 sftp 命令可以利用 SSH 安全连接与远程主机上传、下载文件,采用了与 FTP 类似的登录过程和交互式环境,便于目录资源管理。
客户端想访问服务器的内容需要通过端口号去访问(端口号是默认的)
通过修改配置文件可以去限制某些用户去通过端口号去访问服务器端
可以通过配置文件去修改端口号,修改完端口号客户端在想访问服务器就要用修改过的端口号访问,但是端口号不能重复(为了防止重复个,一般修改的端口号都在一万以后,telnet +ip地址+端口号可以查看端口号是否开放)
ssh +用户名+@ip地址+ -p+端口号可以查看是否可以通过端口号去访问服务器
linux
服务器
网络
上一篇:
目标检测数据集与制作
下一篇:
建筑效果图为啥要用渲染100?渲染100邀请码1a12
相关推荐
耶啵奶膘
1 小时前
uniapp-是否删除
linux
·
前端
·
uni-app
_.Switch
2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维
·
网络
·
python
·
安全
·
自动化
·
devops
2401_85041083
2 小时前
文件系统和日志管理
linux
·
运维
·
服务器
qq_25467441
2 小时前
工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
网络
JokerSZ.
2 小时前
【基于LSM的ELF文件安全模块设计】参考
运维
·
网络
·
安全
XMYX-0
3 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux
·
ssh
一只哒布刘
4 小时前
NFS服务器
运维
·
服务器
小松学前端
5 小时前
第六章 7.0 LinkList
java
·
开发语言
·
网络
二十雨辰
5 小时前
[linux]docker基础
linux
·
运维
·
docker
热门推荐
01
如何才能让手机厂商主动拥抱华为,接入鸿蒙系统?
02
【HarmonyOS】HUAWEI DevEco Studio 下载地址汇总
03
组基轨迹建模 GBTM的介绍与实现(Stata 或 R)
04
【TC3xx芯片】TC3xx芯片电源管理系统PMS详解
05
基于YOLOv10深度学习的CT扫描图像肾结石智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
06
【经验分享】Ubuntu22.04安装微信(linux官方版)
07
Macbook pro M1 安装Ubuntu教程
08
RAG 实践- Ollama+RagFlow 部署本地知识库
09
Windows10安装PCL1.14.0及点云配准
10
文件或文件夹名称中有空格如何批量去除