Centos 7.4中的远程访问控制

博文目录
一、SSH远程管理
二、使用SSH客户端程序
三、构建密钥对验证的SSH体系

一、SSH远程管理

SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent、RSH、RCP、等应用相比,SSH协议提供了更好的安全性。

1、配置OpenSSH服务端

在Centos 7.4系统中,OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行“systemctl start sshd”命令即可启动sshd服务,包括root在内的大部分用户都可以远程登录系统。sshd服务的配置文件默认位于/etc/ssh/sshd_config目录下,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。

1)服务监听选项

sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。V2版本要比V1版本的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。

[[email protected] ~]# vim /etc/ssh/sshd_config   <!--编辑sshd主配置文件-->
17 Port 22         <!--监听端口为22-->
19 ListenAddress 192.168.100.10    <!--监听地址为192.168.100.10-->
21 Protocol 2        <!--使用SSH V2协议-->
118 UseDNS no    <!--禁用DNS反向解析-->
......             <!--此处省略部分内容-->
[[email protected] ~]# systemctl restart sshd    <!--重启sshd服务-->

2)用户登录控制

sshd服务默认允许root用户登录,但在Internet中使用时是非常不安全的。关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。

[[email protected] ~]# vim /etc/ssh/sshd_config      <!--编辑sshd主配置文件-->
 37 LoginGraceTime 2m       <!--登录验证时间为2分钟-->
 38 PermitRootLogin yes      <!--禁止root用户登录-->
 40 MaxAuthTries 6               <!--最大重试次数为6-->
 67 PermitEmptyPasswords no       <!--禁止空密码用户登录-->
 ......             <!--此处省略部分内容-->
[[email protected] ~]# systemctl restart sshd           <!--重启sshd服务-->

2、登录验证方式

对于服务器的远程管理,除了用户账户的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式——密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。

  • 密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举第三者时防御能力比较弱。
  • 密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥,私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在Shell中被广泛使用。

当密码验证,密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可以启用。

[[email protected] ~]# vim /etc/ssh/sshd_config <!--编辑sshd主配置文件-->
 43 PubkeyAuthentication yes         <!--启用密钥对验证-->
 47 AuthorizedKeysFile      .ssh/authorized_keys <!--指定公钥库文件-->
 66 PasswordAuthentication yes        <!--启用密码验证-->
......              <!--此处省略部分内容-->
[[email protected] ~]# systemctl restart sshd         <!--重启sshd服务-->

其中,公钥文件用来保存多个客户端上传的公钥文本,以便与客户端本地的私钥文件进行匹配。

二、使用SSH客户端程序

在Centos 7.4系统中,OpenSSH客户端由openssh-clients软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp、sftp远程复制和文件传输命令等。

1、命令程序ssh远程登录

通过ssh命令可以远程登录sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。示例如下:

[[email protected] ~]# ssh [email protected]
[email protected]‘s password:
Last login: Mon Nov 11 19:02:50 2019 from 192.168.100.254
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# ssh [email protected]
The authenticity of host ‘192.168.100.10 (192.168.100.10)‘ can‘t be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes   <!--接受密钥-->
Warning: Permanently added ‘192.168.100.10‘ (ECDSA) to the list of known hosts.
[email protected]‘s password:     <!--输入密码-->
Last login: Mon Nov 11 19:03:08 2019 from 192.168.100.20
[[email protected] ~]# who         <!--确认当前用户-->
root     pts/1        2019-11-11 19:03 (192.168.100.20)
root     pts/2        2019-11-11 19:04 (192.168.100.10)

如果sshd服务器使用了非默认的端口(如2222),则在登录时必须通过“-p”选项指定端口号。示例如下:

[[email protected] ~]# vim /etc/ssh/sshd_config<!--修改ssh主配置文件-->
Port 2222          <!--修改监听端口号为2222-->
[[email protected] ~]# systemctl restart sshd   <!--重启sshd服务-->
[[email protected] ~]# ssh -p 2222 [email protected]     <!--客户端登录ssh-->
[email protected]‘s password:          <!--输入密码-->
Last login: Mon Nov 11 19:20:28 2019 from 192.168.100.10
[[email protected] ~]#           <!--成功登录-->

2、scp远程复制

通过scp命令可以利用SSH安全连接与远程主机相互复制文件,使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可。示例如下:

[[email protected] ~]# scp
[email protected]:/etc/ssh/sshd_config ./
         <!--将远程主机数据复制到本地数据,保存在当前位置-->
[email protected]‘s password:      <!--输入密码-->
sshd_config                   100% 3910     3.6MB/s   00:00
[[email protected] ~]# scp -r ./sshd_config
[email protected]:/opt
          <!--将本地数据上传到远程主机目录的opt中-->
[email protected]‘s password:      <!--输入密码-->
sshd_config                   100% 3910     1.2MB/s   00:00    

3、sftp安装FTP

通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互环境,便于目录资源管理。示例如下:

[[email protected] ~]# cd /opt/       <!--进入opt目录-->
[[email protected] opt]# sftp [email protected]    <!--登录sftp-->
[email protected]‘s password:      <!--输入密码-->
Connected to 192.168.100.20.
sftp> pwd        <!--查看客户端登录sftp的位置默认在宿主目录-->
Remote working directory: /root
sftp> put sshd_config       <!--上传数据到远程主机-->
Uploading sshd_config to /root/sshd_config
sshd_config                   100% 3910     6.4MB/s   00:00
sftp> get sshd_config         <!--下载数据到本地-->
Fetching /root/sshd_config to sshd_config
/root/sshd_config             100% 3910     3.6MB/s   00:00
sftp> exit                  <!--退出登录-->

三、构建密钥对验证的SSH体系

密钥对验证方式可以远程登录提供更好的安全性。在Linux服务器、客户端中构建密钥对验证SSH体系的基本过程。如下图所示,整个过程包括四步,首先要在SSH客户端以zhangsan用户身份创建密钥对,并且要将创建的公钥文件上传至SSH服务器端,然后要将公钥信息导入服务器端的目标用户lisi的公钥数据库,最后以服务器端用户lisi的身份登录验证。

1、在客户端创建密钥对

在客户端中,通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为ECDSA或DSA(ssh-keygen命令的“-t”选项用于指定算法类型)。示例如下:

[[email protected] ~]# ssh-keygen -t dsa     <!--创建密钥对-->
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):   <!--指定私钥位置-->
Created directory ‘/root/.ssh‘.
Enter passphrase (empty for no passphrase):  <!--设置私钥短语-->
Enter same passphrase again:        <!--确认所设置的短语-->
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:zv0EdqIuOfwSovN2Dkij08y9wZ0f1+IyhY7LFNKKzkk [email protected]
The key‘s randomart image is:
+---[DSA 1024]----+
|                 |
|                 |
|                 |
|     .           |
|  o . o S.+ .    |
| * *.+.=.+.=     |
|o E.*o+==.+ o    |
| =o..*Oo++ +     |
|  ++oo+*+o. .    |
+----[SHA256]-----+
[[email protected] ~]# ls -lh ~/.ssh/id_dsa*  <!--确认生成的密钥文件-->
-rw------- 1 root root 668 11月 12 16:11 /root/.ssh/id_dsa
-rw-r--r-- 1 root root 603 11月 12 16:11 /root/.ssh/id_dsa.pub

新生成的密钥对文件中,id_das是私钥文件,权限默认为600,对于私钥文件必须妥善保管,不能泄露给他人;id_dsa.pub是公钥文件,用来提供给ssh服务器。

2、将公钥文件上传至服务器

将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择SCP、FTP、HTTP甚至发送E-mail等任何方式。

[email protected] ~]# ssh-copy-id -i ./.ssh/id_dsa.pub
[email protected] <!--将公钥文件上传至服务器并导入公钥文本-->
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "./.ssh/id_dsa.pub"
The authenticity of host ‘192.168.100.10 (192.168.100.10)‘ can‘t be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes   <!--输入yes-->
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]‘s password:      <!--输入密码-->

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘[email protected]‘"
and check to make sure that only the key(s) you wanted were added.

3、在客户端使用密钥对验证

当私钥文件(客户端)、公钥文件(服务器)均部署到位以后,就可以在客户端中进行测试了。首先确认客户端中当前的用户为root,然后通过ssh命令以服务器端用户root的身份进行远程登录。如果密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)。

[[email protected] ~]# ssh [email protected]      <!--登录ssh服务器-->
Last login: Tue Nov 12 16:03:56 2019 from 192.168.100.254
[[email protected] ~]# who   <!--登录成功服务器,查看都有哪些用户-->
root     pts/0        2019-11-12 17:35 (192.168.100.20)
root     pts/2        2019-11-12 16:03 (192.168.100.254)

—————— 本文至此结束,感谢阅读 ——————

原文地址:https://blog.51cto.com/14156658/2449789

时间: 2024-11-06 11:40:38

Centos 7.4中的远程访问控制的相关文章

(转)详解Linux中SSH远程访问控制

详解Linux中SSH远程访问控制 原文:http://blog.51cto.com/dengqi/1260038 SSH:是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能(使用TCP的22号端口).SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令. 在RHEL 5系统中使用的是OpenSSH服务器由openssh,openssh-server等软件包提供的(默认已经安装),并以将sshd添加为标准的系统服务. SSH提供一下两种方式的登录验证:

【CentOS】IBM X3650M4 IMM远程管理【转载】

问题描述: IBM X3650M4 IMM远程开机和关机 参考资料: http://www.ibmsys.cn/blog/?p=201 问题解决: 一.如何访问IMM 二.IMM主要功能介绍 三.几个常用功能 1.远程开关机 2.通过IMM刷新服务器的UEFI/IMM微码 3.远程终端功能 一.如何访问IMM通常主机后部有一个专用的管理端口,例如下图以3650M3为例,可以通过此端口访问IMM. IMM管理端口默认IP:192.168.70.125 用户名:USERID 密码:PASSW0RD

CentOS 6.x中用rsync远程同步文件

CentOS 6.x中用rsync远程同步文件 系统环境:Centos 6.9 x64  目的: 服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份. 将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端. 一.服务器端的配置 在源服务器110.112.200.12中配置 [[email protected] test]#  yum -y install xinetd rsync 再修改

Win7下Eclipse中运行远程MapReduce程序

1.hadoop插件的参数配置 2.运行时的参数 3.运行结果 Win7下Eclipse中运行远程MapReduce程序,布布扣,bubuko.com

解决Centos 6.3 中 gedit中文乱码问题

1.安装gconf-editor yum list | grep conf-editor yum install gconf-editor 2.运行gconf-editor 设置: apps  ---> gedit-2  --->  preferences  ----> encoding auto-detected 项添加Add New list value: GB2312 shown_in_menu 项添加 New list value: GB2312  解决Centos 6.3 中

iOS开发中的远程推送实现(最新,支持iOS9)

我的个人项目<丁丁印记>中加入了远程推送功能,按照操作说明去做还是比较容易实现的,但是学的不够不系统,因此这篇文章希望总结一下最新的iOS推送功能,因为iOS8之后的推送和致之前的版本是有所不同的,也希望想能帮助到需要的朋友.这篇文章将从零开始,向大家介绍远程推送功能的原理和使用. 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services). 为什么程序中需要远程推送功能 1.传统

在CentOS 6.4中编译安装gcc 4.8.1

在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html 1. 安装gcc和g++ 新安装的CentOS缺少编译环境,必须先安装旧版本的gcc, 然后再进行自举编译 yum -y install gccyum -y install gcc-c++ 2.

CentOS删除Applications中的菜单项

有时候会错误的安装一些软件,可能安装被不成功,但是在左上角的Applications菜单中还是会显示出来,让人很不爽. 现在介绍一个删除掉CentOS Applications中菜单项的方法: 1.安装alacarte软件    yum install alacarte. 2. 安装完成后,点击左上角的 "System"菜单 选择 "Perferences'菜单,点击其中的"Main Menu"就会看到Applications中的菜单项了 3. 选中对应的

CentOS 6系统中/boot恢复被删除的/boot分区 简单介绍

在CentOS 6系统中,因为不小心或操作失误导致boot分区被删除, 遇到这种情况是否能够恢复被删除的boot分区呢? 1.首先利用centos6镜像进入linux rescue救援模式. 2.启动sshd服务,查看eth0获取的ip地址,然后用ssh secure shell 连接. SSH Secure Shell 3.2.9 (Build 283) Copyright (c) 2000-2003 SSH Communications Security Corp -  http://www