配置远程控制服务

文章目录

    • 配置远程控制服务
  • 前言
  • 一、sshd服务配置文件包含的参数及作用
  • 二、配置实验
    • 1.实验准备
    • 2.基于口令的验证
    • 3.基于安全密钥验证
  • 总结:

前言

1.SSH(Secure shell)是一种能够以安全方式提供远程登录的协议。也是目前远程管理Linux系统的首选方式。
在Linux系统中想要使用SSH协议来远程管理系统,就需要配置sshd服务程序。sshd是一种基于SSH协议开发的一款远程管理服务程序。不仅使用方便快捷,而且能够提供两种安全验证方法。
。。。。基于口令的验证——用账户密码来验证登录。
。。。。基于密钥的验证——需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,
并于服务器中的公钥比较。该方式相较于来说更安全。
2.我们都知道“linux系统中的一切都是文件”,因此在Linux系统中修改服务程序的运行参数,实际就是在修改程序配置文件的过程。sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存最主要配置信息文件称为主配置文件,因为这些文件参数都是默认的,所以配置文件中许多以#号开头注释行,要想要这些配置参数生效,需要在修改参数后在去掉前面的#号。

一、sshd服务配置文件包含的参数及作用

port 22 默认的ssh服务端口
listenAddress 0.0.0.0 设定sshd服务器监听的ip地址
protocol 2 SSH协议的版本号
HostKey /etc/ssh/ssh_host_key SSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key SSH协议版本为2时,RSA私钥存放的位置
Host’Key /etc/ssh/ssh_host_dsa_key SSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes 设定是否允许root管理员直接登录
StrictModes yes 当远程用户的私钥改变时直接拒绝连接
MaxSessions 10 最大终端数
MaxAuthTries 6 最大密码尝试次数
PasswordAuthentication yes 是否允许密码验证
PermitEmptyPasswords no 是否允许空密码登录(不安全)

二、配置实验

1.实验准备

1.准备2台虚拟机
计算机名为xxgc-01,角色为Redhat7.4服务器,IP地址为192.168.10.10/24
计算机名为xxgc-02,角色为Redhat7.4服务器,IP地址为192.168.10.20/24
2.提示:在Redhat7.4系统中,已经默认安装并启用了 sshd 服务程序。如果不是7版本自行通过yum软件仓库安装

2.基于口令的验证

1.连接ssh服务
[root@xxgc-01 ~]# ssh 192.168.10.20
The authenticity of host ‘192.168.10.20 (192.168.10.20)’ can’t be established.
ECDSA key fingerprint is SHA256:Pxribu2yq+q4Yf58+LwxzZuVjHCtuh3d3ssrS05W6a4.
ECDSA key fingerprint is MD5:9e:55:66:11:14:88:bf:5e:87:10:48:16:c0:d0:58:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.10.20’ (ECDSA) to the list of known hosts.
root@192.168.10.20’s password: //此处输入远程主机root管理员的密码
Last login: Sun Oct 11 08:18:33 2020
[root@xxgc-02 ~]#
[root@xxgc-02 ~]# exit
logout
Connection to 192.168.10.20 closed.
[root@xxgc-01 ~]#

2.其他参数可在配置文件/etc/ssh/sshd_config 中利用vim编辑器进行修改

3.基于安全密钥验证

1.各位通过名字就应该明白了,这种方式比第一种方式更加安全。那么具体配置如下:
本例使用普通用户来进行实验
1.在服务器xxgc-03上建立用户 student,并设置密码:

[root@xxgc-03 ~]# useradd yyy
[root@xxgc-03 ~]# echo “redhat” | passwd --stdin yyy//passwd yyy
Changing password for user yyy.
passwd: all authentication tokens updated successfully.
[root@xxgc-03 ~]#

2.在客户机xxgc-02中生成“密钥对”。查看公钥id_rsa.pub和私钥id_rsa。
[root@xxgc-02 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //按回车键或设置密钥的存在路径
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase): //直接回车键或设置密钥的密码
Enter same passphrase again: //再次回车或者设置密钥的密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7IxppN08mwJTTwnGacRG+8Jl+8h0faNMfhPDWWQBMDU root@xxgc-02
The key’s randomart image is:
±–[RSA 2048]----+
| =o. ooE…+|
| O. . .o |
| +…o. .|
| …=o. . . o |
| .+oS . o B |
| o+ @.+ + o + |
| .o= O . + o |
| … + . . |
| .o |
±—[SHA256]-----+
[root@xxgc-02 ~]#
[root@xxgc-02 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUIT1cPz9UyTtUjKEnwm6871xbq25srOsEvWl2rSqg4B+ANq2qR/AWBTkb+7+K7+3c9w0uHn3PBfITkHdLoDiv179rqsx8zUCdtCkofUm8A6nBGpS/QAHPUcW2QnEwZLf3VBstzJs36lFEJNn7WZAofoKm92pN5kJx7VQ3PETv1sF9TZmZNnx6gdJCp76KegPys8/l++n6YL3KhH7JIZE+uoBgsmFInj18ksieygf/cOP6I/qRz4Q3cKbrrIlKXXww/1oHSnp1mBmO/oahQ6Zc1zVdYdR8FK8lE8jhNRvKusXBRC1o4aQlzetA6x/wzkIUqRvq3iNqNI/uGYZfcBCp root@xxgc-02
[root@xxgc-02 ~]#
[root@xxgc-02 ~]# cat /root/.ssh/id_rsa

3.把客户机xxgc-02中生成的公钥文件传送至远程主机。

[root@xxgc-02 ~]# ssh-copy-id yyy@192.168.10.30
The authenticity of host ‘192.168.10.30 (192.168.10.30)’ can’t be established.
ECDSA key fingerprint is SHA256:Pxribu2yq+q4Yf58+LwxzZuVjHCtuh3d3ssrS05W6a4.
ECDSA key fingerprint is MD5:9e:55:66:11:14:88:bf:5e:87:10:48:16:c0:d0:58:db.
Are you sure you want to continue connecting (yes/no)? 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
yyy@192.168.10.30’s password: //输入远程主机密码

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘yyy@192.168.10.30’”
and check to make sure that only the key(s) you wanted were added.

[root@xxgc-02 ~]#

4.设置服务器xxgc-01 (第65行左右),使其只允许密钥验证,拒绝传统的口令验证方式。将 “PasswordAuthentication yes”改为“PasswordAuthentication no“,保存退出wq,并重启服务。
"…


To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no

#Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no



"
[root@xxgc-03 ~]# systemctl restart sshd

5.现在我们开始使用sshd服务
[root@xxgc-02 ~]# ssh yyy@192.168.10.30
[yyy@xxgc-03 ~]$
[yyy@xxgc-03 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.30 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::6a62:29b1:5324:320b prefixlen 64 scopeid 0x20
ether 00:0c:29:f1:01:99 txqueuelen 1000 (Ethernet)
6.在xxgc-03上查看xxgc-02客户机的公钥是否传输成功。本例传输成功。
[root@xxgc-03 ~]# cat /home/yyy/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHQMBzVkEdZq+Q0L/dGDrjWocb+RSUB45Z9+JDs4iXqSS9nemohnbD7uA0G8rk/6Tidft8d8m89IE0ympeLNXAmNDjcQRnR85wc3fVEv9mNshS19wwH291fmvvf/pbrwTxNHU6T3rbhVP1NnFygEGf/z78sarpcYBudqenQhGARdkn4/hgJ55gqqqgfy2c3ION4FTj5o5OHauMrCFCK5uEivZdA2pTEv3Xq4ng55xlSqDyE/+uA0FZ3OyVc6Aym++pM2MvAblcYjkX4uhIclM4UWijwGYjmDu294ux+LbokKAfzuUpoH0wf8iM2Y4vaLv+xK7fPlqSkngAsWtX7SoJ root@xxgc-02
[root@xxgc-03 ~]#

总结:

1.通过了以上实例,我们完成了简单的sshd服务器,我们继续实验还可以得出如果在root管理员身份下生成密钥对,那么普通用户也可使用。但是普通用户下生成的密钥对,root用户不可使用,这也是一种安全完善机制吧。具体实验,各位就私下验证。下面就是一些基础命令。
[root@xxgc ~]# systemctl status sshd —查看状态
[root@xxgc ~]# systemctl stop sshd —停止服务
[root@xxgc ~]# systemctl restart sshd —重启
[root@xxgc ~]# systemctl start sshd —启动服务
[root@xxgc ~]# systemctl enable sshd —加入开机自启动
[root@xxgc ~]# systemctl is-enabled sshd —查看是否开机自启动
[root@xxgc ~]# systemctl disable sshd —禁止开机自启
[root@xxgc02 ~]# systemctl reload sshd —重新加载配置文件(不停止服务)

[root@xxgc ~]# vim /etc/ssh/sshd_config

[root@xxgc ~]# hostnamectl set-hostname xxgc01

[root@xxgc01 ~]# ssh 172.25.1.6 -l mylinux

[root@xxgc01 ~]# ssh mylinux@172.25.1.6

[root@xxgc02 ~]# setenforce 0 — 临时禁用SELinux

[root@xxgc02 ~]# systemctl stop firewalld.service —关闭防火墙

[root@xxgc01 ~]# ssh 172.25.1.6 -p 220

Redhat7.4下使用SSH服务相关推荐

  1. Ubuntu下开启SSH服务

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

  2. win10下添加ssh服务

    Openssh是Linux系统下功能强大的远程服务和管理工具,现在在Windows10系统下也可以使用Openssh了.安装步骤如下: 设置--更新和安全--开发者选项--点选"开发人员模式 ...

  3. QNX系统下开启SSH服务步骤

    QNX系统下开启SSH服务的步骤: 具体可以参考:sshd的工具手册,针对imx6q开发板,具体步骤如下: 1.在/etc/inetd.conf中添加如下: ssh        stream tcp ...

  4. Ubuntu 下配置 SSH服务全过程及问题解决

    Windows下做Linux开发,装虚拟机里,怎么可以不用SSH呢.有人说,"做Linux开发,还不直接装机器上跑起来了,还挂虚拟机,开SSH--闲的蛋疼了吧",不管怎样,我接触L ...

  5. Ubuntu下安装SSH服务

    判断是否安装ssh服务,可以通过如下命令进行: $ ssh localhost ssh: connect to host localhost port 22: Connection refused 如 ...

  6. 树莓派3下开启SSH服务

    树莓派系统的安装非常简单.但是装完系统之后为了能远程连上费了不少时间. 先按照官方文档来 1,使用管理工具 Enter sudo raspi-config in a terminal window S ...

  7. linux下,ssh服务安装和法git简单的使用方,整理实测。

    一.ssh服务的安装(转载整理): 一般外部访问错误信息:ssh: connect to host localhost port 22: Connection refused. 错误原因可能: a.s ...

  8. Ubuntu ssh 服务开启方法

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

  9. Linux服务-SSH服务部署

    Ubuntu部署ssh服务 简介 SSH是一种用于安全访问远程服务的网络协议,它将客户端与服务端之间的消息通过加密保护起来,取得一定的安全作用.本文主要介绍如何在Ubuntu下搭建SSH服务. 为什么 ...

最新文章

  1. 【一语点醒梦中人】如何优雅地合并两个JSON对象 → Object.assign(a, b)和Object.assign({}, a, b)的区别
  2. python在工厂中的运用_Python常见工厂函数用法示例
  3. mysql校对规则_MySQL中的校对规则
  4. Unity中使用Attribute
  5. echo,print()和print_r()有什么区别?
  6. 细说 Vue.js 3.2 关于响应式部分的优化
  7. MFC程序打开文件对话框出错的问题解决
  8. 今天需要修复的bug
  9. Python-Flask实现电影系统管理后台
  10. 谷歌android wear智能腕表 价格,谷歌Android Wear 2.0更新推送:仅三款智能手表可享受...
  11. 【Todo】【转载】Scala中Array, List, Tuple的区别
  12. python3实现的rtsp客户端脚本
  13. fba4droid android,fba4droid模拟器
  14. linux内核mtd驱动程序与sd卡驱动程序,Linux内核MTD驱动程序及SD卡驱动程序.doc
  15. 怎样运用好iMindMap中的虚线箭头
  16. Java面向对象编程——类与对象
  17. 美国卡内基梅隆大学计算机排名,卡内基梅隆大学,美国卡梅基梅隆大学世界排名?...
  18. 【Android】在有menu键的手机上显示ActionBar上的Menu键
  19. java6发布_Minecraft Java版 1.13-pre6 发布
  20. 网易云信周梁伟专访:亿级架构IM平台的技术难点解析

热门文章

  1. does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare
  2. 教妹学Java(二十六):static 关键字解析
  3. win10安装.Net FrameWork无法找到源文件问题
  4. DEM_ASTGTMV003_N30E107_num.tif 数据质量文件说明
  5. 逻辑回归 解决报错:ValueError: Solver lbfgs supports only ‘l2‘ or ‘none‘ penalties, got l1 penalty.
  6. SQL中 and or优先级问题
  7. 【bzoj1917】[Ctsc2010]星际旅行
  8. 机械臂速成小指南(八):运动学建模(标准DH法)
  9. 准备笔试-埃森哲在线笔试
  10. python怎么批量下载年报_如何用Python写一个抓取新浪财经网指定企业年报的脚本...