linux远程访问及控制

补充:

终端:接收用户的指令

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+端口号可以查看是否可以通过端口号去访问服务器

相关推荐
Johny_Zhao3 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8504 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
好好学习啊天天向上5 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
tan180°6 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
典学长编程6 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9986 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
snoopyfly~9 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
独行soc9 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon9 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
饥饿的半导体10 小时前
Linux快速入门
linux·运维