Linux中的远程登陆服务

1 实验环境配置

1.1 配置网络的桥接线

配置步骤

  • 输入‘cd /etc/sysconfig/network-scripts’命令进入network-scripts文件,ls查看改文件中是否有 ifcfg-br0 文件,若没有则代表需要配置网桥
  • cp ifcfg-enp0s25 /mnt,将network-scripts中的网卡配置文件(ifcfg-enp0s25)复制到/mnt下,注意,不同的主机的网卡配置文件名称不同
  • cp ifcfg-enp0s25 ifcfg-br0,复制网卡配置文件的内容到ifcfg-br0文件,改文件时开启网卡的一个br0接口
  • vim ifcfg-enp0s25,进入该文件并按如下配置,如果进入该文件时有其他内容,可以删除:
    • DEVICE=enp0s25
      BOOTPROTO=none
      ONBPPT=yes
      BRIDGE=br0
  • vim ifcfg-br0,再进入该文件并做如下配置,如果进入该文件时有其他内容,可以删除:
    • DEVICE=br0
      BOOTPROTO=none
      IPADDR=172.25.254.1(自己的真机id)
      PREFIX=24
      ONBOOT=yes
      TYPE=Bridge
  • 完成后,输入reboot,重启系统即可
  • 重启系统后,输入 bridge link命令 ,可以看到网卡开启了一个br0接口
  • 切换到root用户,输入 virt-manager 命令,会出现Virtual Machine Manager窗口,双击进入里面的虚拟机,打开后,可以看到一个灯泡标志,点击进入。进入后,左侧可以找到NIC网卡,在Neteork source里面选择,Bridge桥接;在Device model里面选择virtio。最后点击apply,这样桥接就设定完成。

1)输入 virt-manager 命令:在这里插入图片描述

在这里插入图片描述
2)点击进入灯泡标志:
在这里插入图片描述
选择NIC网卡,并在Neteork source里面选择,Bridge桥接;在Device model里面选择virtio,按下apply完成桥接设定:
在这里插入图片描述

1.2 虚拟机网络配置

1)输入nm-connection-editor命令 ,会出现一个Network Connection窗口:
在这里插入图片描述

将窗口中原有的Ethernet里面的内容,用下面的减号减掉。减掉后,再选择加号,选择以太网,点击create:
在这里插入图片描述
2)点击创建后,出现一个窗口:
在这里插入图片描述
在Ethernet里面的connection name里起名字,然后点击device选自己的网卡:
在这里插入图片描述
3)进入菜单栏的 IPV4 Settings里面,在method里面选择manual列表方式:
在这里插入图片描述
在下面的address旁边选择add添加,添加的内容是真机ip的最后一位+100,例如原来是:172.25.254.36,现在写172.25.254.136;netmask写24;点击gateway即可,然后选择save保存:
在这里插入图片描述
4)可以看到虚拟机网络连接窗口的内容发生变化:
在这里插入图片描述
关闭network connection窗口后,可以看到shell如下:
在这里插入图片描述
5)最后输入 ping 172.25.254.36,只要输入该命令后,最后一位time显示数字,代表真机和虚拟机是通的:
在这里插入图片描述
查看虚拟机ip:
在这里插入图片描述

2 Openssh的功能

1)sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
ssh:Secure SHell(客户端服务)
sshd:Secure SHell daemon(服务端服务)
2)安装包
当没有ssh服务时,使用openssh-server安装包进行安装
3)主配置文件
/etc/ssh/sshd_conf
4)默认端口
22

3 ssh

做以下实验时,可以在真实主机里面建立一个纯净的用户(虚拟机作服务器,真实主机做客户端)。新建了一个用户后,只要使用过ssh命令,即使没有连接成功,那么当前用户的家目录里就会出现.ssh配置文件,没使用该命令之前是没有的,在没有连接过任何主机之前该目录是空的
使用过ssh命令后:
在这里插入图片描述

3.1 基本用法

  • ssh [-l 远程主机用户] <ip|hostname>

1)ssh -l root 172.25.254.136命令,表示通过ssh命令在136主机中以root身份开启远程shell:
在这里插入图片描述
如上图所示,当输入yes后,可以使用cd ~/.ssh命令,查看该文件下生成known_hosts文件,查看该文件,里面有一串加密字符串,是在输入yes时,所连接的远程主机传过来的:
在这里插入图片描述

在服务器端输入cd /etc/ssh命令,这是ssh配置文件,可以在自己的主机端看到该加密字符前面是 exdsa,在服务器端/etc/ssh该文件下查找ecdsa.pub(pub就是公钥),可以cat查看该文件里面的内容与客户端完全一致,只有一致时才能认证成功并登陆,不一致无法登陆:
在这里插入图片描述
2)想改成不一致,可以把服务器端的该文件删除,注意不要rm -fr /etc/ssh,会把整个目录删掉,造成系统问题,应该用rm -fr /etc/ssh/文件名,此时想要恢复该文件时,可以把该目录下面的所有文件删除rm -fr /etc/ssh/ssh_host_*,然后输入 systemctl restart sshd 命令,令该目录下的所有文件重新生成,重新生成后,该文件的key会发生变化,此时身份认证就不成功被拒绝:

在这里插入图片描述
在这里插入图片描述
3)当连接因为认证问题被拒绝时解决方案:注意看报错内容,它会提示具体哪一行有问题,可以进入该文件,把有问题的行删除,再重新连接。然后进入 .ssh 查看里面会有一个新的key文件,当该文件存在之后,再登陆的时候,就不用再输入yes/no,直接输入密码登陆即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 常用参数

参数含义
-l指定登陆用户。注意登陆完服务端后要退出,不要直接切换到客户端用户
-i指定私钥
-X远程登陆的时候开启图形
-f后台运行
-o指定连接参数
-t指定连接跳板

1)在登陆到服务端时,不写X参数,要打开gedit时会被拒绝。想要开启图形时,要先退出登陆,再加上X参数重新登陆,而后可以打开gedit,打开gedit的这个进程是在服务端的,并非在客户端产生:
在这里插入图片描述
在服务器端查看进程:
在这里插入图片描述
结束该今进程:
在这里插入图片描述

2) 当登陆远程主机时,输入ssh -Xl root 172.25.254.136就会直接登陆服务端了。若只想在远程主机里面执行命令,可以使用ssh -Xl root 172.25.254.136 gedit命令,当结束gedit进程后,还是在本机里面,而不是在服务端。但是这样执行,该命令会把当前的shell直接占用,若想在后台运行,可以再加上f参数,ssh -Xfl root 172.25.254.136 gedit:

在这里插入图片描述
3)sh -l root 172.25.254 -o “StrictHostKeyChecking=no” 命令,表示首次连接不需要输入yes。执行过该命令后,再重新登陆时,不需要再输入-o参数也不会再出现yes/on,因为已经自动输入了:
在这里插入图片描述
4)ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105命令,表示先登陆1号主机,再跳到105号主机。适用于需要连接一台主机的时候被拒绝了,就可以先连接其他主机,再跳到该主机上:
在这里插入图片描述

4 sshd key认证

4.1 认证类型

类型含义及优缺点
对称加密加密和解密是同一串字符。容易泄漏、可暴力破解、容易遗忘
非对称加密加密用公钥,解密用私钥。不会被盗用、攻击者无法通过无密钥方式登陆服务器

4.2 生成非对称加密密钥

  • 方法一:ssh-keygen命令

输入保存密钥文件时,前面括号里的是默认目录及文件名,也可以自己设定文件及路径,但这样需要改打开大量的配置文件,为了避免这种情况,可以直接回车,默认即可;(empty for no passphrase)表示密钥密码,可以要也可以不要,若需要,要确保密码大于四位。若不要直接回车相当于已经有密钥,不再要密码,可以达到免密登陆;最后,id_rsa文件 表示私钥,可以开锁。id_rsa.pub文件表示公钥,可以上锁:在这里插入图片描述

  • 方法二:非交互式,ssh-keygen -f /root/.ssh/id_rsa -P “” ,引号中可以输入密码,但一般为空

1)输入非交互式命令并对服务器加密:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)登陆服务器:
在这里插入图片描述

4.3 对服务器加密

  • ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip
    eg:ssh-copy-id -i /root/.ssh/id_rsa.pub lee@172.25.254.105

上面命令中,加的用户是谁,锁的就是谁,其他用户不会被锁。如果客户端用户的.ssh目录下存在私钥文件,就可以直接免密登陆。如果私钥不存在这个路径下,无法直接认证,那么就需要输入密码,此时若不知道密码,就无法登录。当密钥被窃取了,可以在服务器端,将公钥移出.ssh目录,此时客户端也是无法连接服务器的。出现added表示添加成功:
在这里插入图片描述
查看服务器端是否有公钥:
在这里插入图片描述
查看客户端的公钥是否与服务器端一致:
在这里插入图片描述
查看客户端的私钥,并免密登陆服务器:
在这里插入图片描述
移除客户端的私钥,无法登陆服务器:
在这里插入图片描述

5 sshd 安全优化参数详解

配置含义
Port 2222设定端口为2222,默认为22
PermitRootLogin yesno
PasswordAuthentication yesno
AllowUsers lee用户白名单(只有谁能用),多个用户空格隔开就可
DenyUsers lee用户黑名单,多个用户空格隔开就可
  • 注意安全优化是再服务器上操作的
  • 做实验前要关闭防火墙:systemctl disable --now firewalld
  • 以下操作都是在vim /etc/ssh/sshd_config文件中进行的
  • 每次修改后,都要重新加载配置,systemctl reload sshd.service
  • 做端口实验前,用getenforce命令查看,系统中的selinux是否开启,开启时无法改变端口号 。若它时开启的,需要关闭它, 用vim /etc/selinux/config命令,使文件里面的SELINUX=disabled即可,完成后需要重启系统;可以使用ss -anltupe | grep sshd查看端口信息,其中a表示:所有端口 ;n表示:不做解析,即显示ip而不是主机名;l表示:正在活跃的 ;表示:tcp协议; u表示:udp协议 ;p表示:程序名称 ;e表示:显示完全信息。

1)实验前的准备:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)查看端口信息:
在这里插入图片描述
在这里插入图片描述
3)指定端口号,进行远程连接:
在这里插入图片描述
4)改端口号:进入 vim /etc/ssh/sshd_config文件,改port,进入里面之后,看到前面有个#,代表系统不读。可以把#去掉,再把port改了。改完后,使用systemctl reload sshd.service重新加载配置,再查看端口号。改成功后,要把防火墙关闭,否则新端口号不起作用:
在这里插入图片描述
修改端口号:
在这里插入图片描述
重新加载sshd配置:
在这里插入图片描述
查看端口号:
在这里插入图片描述
关闭防火墙:
在这里插入图片描述
5)对超级用户登陆禁止,编辑vim /etc/ssh/sshd_config文件,里面的permitrootlogin 改为no,不能登陆超级用户。然后systemctl restart sshd。只限制超级用户,不限制普通用户:
在这里插入图片描述
在这里插入图片描述
超级用户登陆失败,普通用户登陆成功:
在这里插入图片描述
6)用户黑名单,lee用户进入黑名单无法登录,其他用户可以:
在这里插入图片描述
在这里插入图片描述
多个用户进入黑名单:
在这里插入图片描述

7)lee用户进入白名单,只有该用户可登陆:
在这里插入图片描述
在这里插入图片描述
8)是否开启原始密码认证方式(一般不开启,只用密钥方式)
在这里插入图片描述
不开启密码但又没有密钥文件时:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值