实训作业三:使用SSH协议远程控制任务

实训目的:

1)使用SSH协议远程访问Linux服务器(*)

2)使用VNC远程管理工具访问Linux服务器

实训准备:

1)环境准备:两台虚拟机,一台是Linux服务器Server,另外一台Linux客户端Client

  1. 网络配置:仅主机模式

配置Linux Server服务器

IP地址:192.168.1.2/24
网关:192.168.1.1

配置Linux Client客户端

IP地址:192.168.1.3/24
网关:192.168.1.1

实训步骤:

1.基于口令的验证(用户账号和密码)

1)确保服务器和客户端互通

服务器端:
ping 192.168.1.3

客户端:
ping 192.168.1.2

2)修改服务器和客户端名称

服务器端:hostnamectl set-hostname server

[root@server ~]#

客户端:hostnamectl set-hostname client

[root@client ~]#

  1. 查看防火墙规则

firewall-cmd --list-all

[root@server ~]# firewall-cmd --list-all --在服务器端查看,防火墙规则允许远程访问
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client

4)使用SSH协议,客户端访问服务器端

ssh 192.168.1.2 --远程访问了服务器端root用户

[root@client ~]# ssh 192.168.1.2
The authenticity of host ‘192.168.1.2 (192.168.1.2)’ can’t be established.
ECDSA key fingerprint is SHA256:eNyGnBE9glD8INFExTNOSXan5vdh8/BXHofeKd6Q62g.
ECDSA key fingerprint is MD5:f9:13:05:5c:c1:05:0e:02:cf:f5:ec:0e:68:f4:2b:dd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.1.2’ (ECDSA) to the list of known hosts.
root@192.168.1.2’s password:
Last login: Thu Nov 23 16:38:48 2023
[root@server ~]# --远程访问了服务器端root用户

访问指定用户

ssh tubin@192.168.1.2

[root@client ~]#ssh tubin@192.168.1.2
The authenticity of host ‘192.168.1.2 (192.168.1.2)’ can’t be established.
ECDSA key fingerprint is SHA256:eNyGnBE9glD8INFExTNOSXan5vdh8/BXHofeKd6Q62g.
ECDSA key fingerprint is MD5:f9:13:05:5c:c1:05:0e:02:cf:f5:ec:0e:68:f4:2b:dd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.1.2’ (ECDSA) to the list of known hosts.
tubin@192.168.1.2’s password:
Last login: Thu Oct 19 23:41:08 2023
[tubin@server ~]$ --远程访问了服务器端tubin用户

2.基于密钥的验证(使用公钥和私钥对)
注:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,
并与服务器中的公钥进行比较;该方式相较来说更安全。

1)查看服务器端的公钥和私钥

cd /etc/ssh

[tubin@server ~]$ cd /etc/ssh
[tubin@server ssh]$ ls
moduli sshd_config ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
ssh_config ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key

ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub --公钥

ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key --私钥

sshd_config --服务器端SSH配置文件

ssh_config --客户端的SSH配置文件

VI.查看服务器端的公钥信息

[root@server ssh]# cat ssh_host_rsa_key.pub --查看rsa非对称加密的公钥信息
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGyGsToiEV+6Q8FdMlMinOOOYFpIzGT2vAt4rdPBeBSLt+NTMc5oZO/kq/ktl3PU1U0eJ/k0+8++67N1j7iKyolzZwisa57eXm1w3Hu2nwAzCTCJgmax0jhE7ceB9pMRNVPuhBBWqELDRFsc+nn1Qhae/cvzmbqqYo6rVwNoLg3DzJdPedS0uHhPxTiYE2Gvg9h1wFwJ5wgW3GM03FFvkuj8E5k+eg7HCSJ7VBec+mhfwRQHoahcJImVrArdARJ3mRW1OnEP8T1HkmYskQKLvr+49oFDMZDNur5tJFSTMQbYZVOFcEW9RPtkAMYJYqwf3d4X7yIURwwKFUj3gnu+sd

VII.查看客户端的加密公钥

[root@client ~]# cd /root/.ssh/
[root@client .ssh]# ls
id_rsa id_rsa.pub known_hosts

[root@client .ssh]# cat known_hosts
–查看到来自服务器端192.168.1.2的加密的公钥信息
192.168.1.2 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHNLwYqo/uEMHylrbX/G1X8Hb7+n6MuZj0VZCh/GlbQC7buWBa3somhAQ4FbWpXNZD0prjD7Vo5hg2O/NdJcePo=

VIII.修改ssh配置文件禁止客户端直接访问服务器端root用户

[root@server ssh]# cd /etc/ssh

[root@server ssh]# ls
[root@server ssh]# cat sshd_config

#Port 22 --端口
#AddressFamily any
#ListenAddress 0.0.0.0 --监听地址
#ListenAddress ::

HostKey /etc/ssh/ssh_host_rsa_key --加密的私钥
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key --加密的公钥,会上传到客户端

#PermitRootLogin yes --yes允许ssh服务使用root用户登录

#PermitRootLogin yes --no 禁止使用ssh服务使用root用户访问服务器

PasswordAuthentication yes --允许用户密码的登录

#PubkeyAuthentication yes --允许公钥认证登录

AuthorizedKeysFile .ssh/authorized_keys --认证登录证书文件的路径

重新启动ssh服务,使配置文件生效

systemctl restart sshd

验证客户端无法使用root用户登录服务器端
[root@client ~]# ssh 192.168.1.2
root@192.168.1.2’s password:
Permission denied, please try again.

切换其他用户登录:
[root@server ~]# ssh tubin@192.168.1.2
tubin@192.168.1.2’s password:
Last login: Fri May 6 09:08:47 2022 from 192.168.1.3

6)使用认证证书登录SSH服务

通过公钥和私钥对,由服务器上传公钥到客户端,客户端通过证书认证登录SSH服务

在客户端Client创建公钥私钥对:

ssh-keygen -t rsa 以非对称加密创建公钥私钥对

[root@client ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
–默认保存路径
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:ePFy10y7ZSuB+FK6uIH5OKUdtz6R32opi/I19DApAwU root@client

查看客户端的公钥和私钥
[root@client ~]# cd /root/.ssh
[root@client .ssh]# ls
id_rsa id_rsa.pub known_hosts

[root@client .ssh]#cat id_rsa.pub --查看公钥
id_rsa id_rsa.pub known_hosts

[root@client .ssh]#cat id_rsa --查看私钥
id_rsa id_rsa.pub known_hosts

在客户端和服务器端互通的情况下:

上传客户端公钥文件到服务器端中去:(root用户被禁用了,上传到普通用户tubin上)

ssh-copy-id -i id_rsa.pub tubin@192.168.1.2

[root@client .ssh]# ssh-copy-id -i id_rsa.pub tubin@192.168.1.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “id_rsa.pub”
/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
tubin@192.168.1.2’s password:

Number of key(s) added: 1 --添加了桌面端口号1

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

服务器端查看是否上传了客户端的公钥

[root@server tubin]# cd /home/tubin/.ssh
[root@server .ssh]# ls
authorized_keys
[root@server .ssh]# cat authorized_keys

验证客户端通过SSH远程服务器端不用输入密码登录成功

ssh tubin@192.168.1.2 --使用桌面端口号1进行免密登录

[root@client ~]# ssh tubin@192.168.1.2
Last login: Sun May 8 09:01:01 2022
[tubin@server ~]$ ifconfig --免密登录了服务器端
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255

切换root用户,输入密码仍然可以使用该用户去操作远程服务器
[tubin@server ~]$ su
密码:
[root@server tubin]# cd

6)使用命令登录服务器端的图形界面操作

登录字符界面:ssh tubin@192.168.1.2

in@server ~]$ gedit --不能打开图形界面进行操作

(gedit:5111): Gtk-WARNING **: cannot open display:

[tubin@server ~]$ exit --退出远程服务连接
登出
Connection to 192.168.1.2 closed.

1)使用命令登录服务器端的图形界面命令:

ssh -X tubin@192.168.1.2

[root@client ~]# ssh -X tubin@192.168.1.2
Last login: Sun May 8 09:10:37 2022
/usr/bin/xauth: file /home/tubin/.Xauthority does not exist

验证是否打开了图形界面:
[tubin@server ~]$ gedit --能够打开空的文本文件,说明图形界面打开成功

2)在物理机windows中使用Xshell或PUTTY访问连接Linux服务器:

一般来说访问linux服务器的字符界面,安装插件可以访问Linux服务器的桌面

将物理机中网络适配设置中vmnet1的IPV4设置为192.168.1.x网络

ping 192.168.1.2 --ping通服务端

使用xmanager通过ssh服务连接Linux图形界面

–大家去下载尝试一下使用软件登录Linux图形界面

3)使用WINSCP实现window主机和虚拟机Linux服务器文件共享

以window的资源管理器模式展示Linux中路径,方便共享文件到对应的路径中

6)VNC服务(VNC服务安全性不可靠,但用来局域网使用)

使用于图形界面的远程SSH服务

一.安装VNC服务(服务端)
适用于图形界面的远程服务,不需要用户和密码

1.安装服务器端VNC

mkdir /mnt/cdrom

mount /dev/cdrom

2.配置文件dvd.repo

[dvd]
name=dvd
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1

3.安装服务器端

yum install tigervnc-server

4.设置VNC服务密码

vncpasswd

[root@server yum.repos.d]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

5.开启VNC服务

vncserver

[root@server yum.repos.d]# vncserver
xauth: file /root/.Xauthority does not exist

New ‘server:1 (tubin)’ desktop is server:1 --桌面服务1

Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/server:1.log

6.开启5901端口

查看5901端口:
[root@server yum.repos.d]# netstat -na|grep 5901
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN
tcp6 0 0 :::5901 ::😗 LISTEN

开启防火墙5901端口:

firewall-cmd --permanent --add-port=5901/tcp

firewall-cmd --reload

可以使用其他用户去开启另外的桌面端口2,开启5902防火墙端口

重复上述步骤

二.安装VNC服务(客户端)

1.安装服务器端VNC

mkdir /mnt/cdrom

mount /dev/cdrom

2.配置文件dvd.repo

[dvd]
name=dvd
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1

3.安装客户端

yum install tigervnc

5.打开VNC客户端

输入服务器端IP以及桌面端口

三、通过Windows的远程服务软件VNC viwer去访问linux服务器桌面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值