栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux中的远程登陆服务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux中的远程登陆服务

Linux中的远程登陆服务
  • 一、实验环境配置
  • 二、基本知识
    • 1、主流企业架构
    • 2、Openssh的功能
    • 3、ssh远程连接出问题的解决方案
      • 1、基本知识
      • 2、解决问题
  • 三、ssh常用参数
  • 四、sshd key认证
    • 1、认证类型
      • (1)对称加密
      • (2)非对称加密
    • 2、生成非对称加密密钥
    • 3、对服务器加密
      • 1、生成密钥
      • 2、测试
  • 五、sshd 安全优化参数详解
    • (1)、Port 2222 #设定端口为2222
    • (2)、PasswordAuthentication yes|no #是否开启原始密码认证方式
    • (3)、PermitRootLogin yes|no #对超级用户登陆是否禁止
    • (4)、用户的黑白名单

一、实验环境配置

实验环境配置
保证干净的实验环境,重新配置nodea与nodeb的ip。并删除不必要的文件。(因为之前老师设置过的系统可能有其他文件)

二、基本知识 1、主流企业架构

有cs模式和bs模式。
C/S模式就是指客户端/服务器模式,是计算机软件协同工作的一种模式。比如微信。

由于Web浏览器的兴起,B/S模式逐步取代了C/S模式,被更广泛地应用。比如百度。

比如ssh 就是客户端 sshd就是服务端。

2、Openssh的功能

(1)、sshd服务的用途
##作用:
#可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===>ssh ##客户端
Secure SHell daemon ===>sshd ##服务端
(2)、安装包
openssh-server

sshd用来控制所有ssh的程序,是服务端,它的安装包就是openssh-server

由于openssh-server是我们系统当中的一个基础的安装包,在安装系统的时候已经安装好了。
所以,如果想让别人远程连接我的主机的话,那我的主机里就必须有openssh-server这个安装包,可以通过如下命令进行查询。

这个服务所使用的守护进程叫sshd:

(3)、主配置文件
/etc/ssh/sshd_conf
在主配置文件中,设定 sshd这个守护京岑进程如何对ssh进行控制。
(4)、默认端口
  22

访问同样的ip 看到的东西不一样 比如 使用ssh远程连接50 这台主机 和 在100这台主机中使用浏览器 输入172.25.254.50 看到的东西就不一样。

我们可以把端口理解为 程序对外开
放的接口。
ip上有某一个接口,说明该程序在运行,没有就说明该程序没在运行。

当然端口是可以改变的,但是一般情况下使用默认的就好。

我们可以使用如下方式查看端口号:

如果对后面的参数有不清楚的,可以使用man netstat查看。

(5)、客户端命令
  ssh

3、ssh远程连接出问题的解决方案 1、基本知识


当使用200连接100的时候,会发现100这台主机发送过来的fingerprint,(密钥)
意思就是当再次连接100的时候证明与之前连接过的是相同的ip(200)。

当接收密钥后,/root/.ssh/known.hosts 中就会自动记录100主机发送过来的密钥。

而对应于200这台主机中的 /root/.ssh/known.hosts 里面的内容。
100这台主机 的key存在于 /etc/ssh

当200这台主机连接100的时候,100主机会形成公钥和私钥,公钥发给100 ,私钥用来和公钥匹配。
当200去连接100的时候,100首先要做的是就是 用私钥去匹配公钥 ,如果匹配成功,则证明200是受信任的。

下图可以看到,100中的公钥和200接收到的一样。

2、解决问题

如果此时,我们将100主机上的/etc/ssh/ssh_host_* 删掉
当再次重启sshd服务的时候,ssh_host_文件又会重新生成,这样和之前发给200的公钥就不一样了,那就会使连接出现问题。

当用200去连接100时,会出现如下情形:

打开 /root/.ssh/known_hosts 按照提示 删掉第一行即可。

之后重新连接即可。

三、ssh常用参数
-l指定登陆用户
-i指定私钥
-X开启图形
-f后台运行
-o指定连接参数 如: ssh -l root@172.25.254.x -o “StrictHostKeyChecking=no” 首次连接不许要输入yes
-t指定连接跳板 如:ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105

(1)、-X 开启图形
当连接100这台主机后,开启不了图形


当然也可以在连接时就直接指定开启gedit。


(2)、-f 后台运行
为了不影响前台运行,我们使用-f 后台运行gedit

(3)、 -o |指定连接参数
ssh -l root@172.25.254.x -o “StrictHostKeyChecking=no” 首次连接不许要输入yes


(4)、-t | 指定连接跳板
如:ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105

指定跳板是因为 ,你的主机是不受信的,必须通过中继主机去连接目标。

假设 100这台主机只让200连接,这个时候就要指定一个跳板
跳板就是 通过谁去链接谁 :

此时 ,100中 w -i显示 是200在连接他。(50是之前连接的)

四、sshd key认证


上图反映了,ssh开启的远程连接服务会方便用户使用,但是权限越大 安全指数就越低,
比如 我关掉ssh服务,那知道主机密码的人还可以通过密码来登录真实主机。
也就是说 用shh这样的登陆方式 去登陆你想维护的服务器的时候 使用这种方式不安全
那如何解决这样的问题?

1、认证类型 (1)对称加密

加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘

(2)非对称加密

加密用公钥,解密用私钥
不会被盗用
攻击者无法通过无密钥方式登陆服务器

显然 这一小节开始图示的内容就是对称加密。
我们可以把传统的挂锁 (铁疙瘩和钥匙)想象成非对称加密 如果没有钥匙 连开锁的机会都没有。

2、生成非对称加密密钥

(1)、方法1:

(2)、方法二:
内容与方法一一致,但是使用非交互式的方法:

3、对服务器加密 1、生成密钥

做完2的步骤以后,相当于在商店买了一把锁和对应的钥匙,但是还没有上锁。

使用如下图示中的步骤,
用指定锁对指定用户及主机上锁。

当/root/.ssh 目录下出现 authorized_keys 说明上锁成功。说明这个用户是被加密过的。

其实authorized_keys就是id_rsa文件的复制,
上锁的过程就是 将id_rsa 文件复制到.ssh文件中 生成authorized_keys的过程。

2、测试

首先 将生成的密钥发送给200主机(给指定用户分配密钥)

这时候 在200这台主机上登录100 在登陆时 指定密钥所在位置

当然,如果觉得每次都要制定密钥来免密登录100 那可以把id_rsa 放入200下的/root/.ssh目录下。
这样就会自动识别这个文件了。

五、sshd 安全优化参数详解

(1)、Port 2222 #设定端口为2222

使用ssh远程连接服务时,默认端口就是22

当我们关闭200的sshd服务时,使用100连接200,会有如下显示。

改变端口号:
编写如下文件,将port注释打开,改为2222。
然后再连接该改过端口的坠主机上时,要注意加上-p,标明端口号。
做完实验后 ,我们还是将/etc/ssh/sshd_config 文件中的端口号 注释掉 我们使用默认端口就好。

(2)、PasswordAuthentication yes|no #是否开启原始密码认证方式

当然,我们在这章学习过对称加密与非对称加密后,延伸出这样一个问题:

能不能只存在非对称加密,直接取消掉输入密码的功能,这样就能保证所有人链接我的主机时采用非对称加密方式,那只有我可以将我主机的密钥发送给我信任的人,这样安全性就会大大提高。


当其他主机再次连接时,就会出现如下所示的情况。

当然,此时只有拿到密钥的主机才可以连接100。
我们可以使用scp命令将密钥发送给指定用户。

此时200在拿到密钥的情况下就能登录100了。

(3)、PermitRootLogin yes|no #对超级用户登陆是否禁止

当有主机远程连接我的主机的时候,考虑到root用户的权限太大了,可以禁止其以超级用户的身份连接。
将100主机的/etc/ssh/sshd_config 第46行修改如下:

当使用200去连接100的时候就会发现 你连接100的普通用户可以 但是链接超级用户不行。

(4)、用户的黑白名单

(1)、用户黑名单(DenyUsers)
在/etc/ssh/sshd_config 下设定 DenyUsers

那如果在黑名单中添加多个用户 可以查询 man 5 sshd_config,里面指出 不同用户之间用空格隔开。


此时用200连接 westos与zhang 就都不能连接100了。

(2)、用户白名单(AllowUsers)
做实验前 先把刚刚设置的黑名单注释掉。
在100主机中 添加白名单用户 zhang
就代表只有白名单内的用户可以通过ssh 连接本主机。(连root也不行)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号