Linux远程管理之SSH、VNC

关注我们的人都能找到高薪工作

本篇文章将讲解Linux下常用的两个远程管理工具,一个是基于CLI(命令行模式)的SSH,另一个是基于GUI(图形用户界面模式)的VNC。

一、远程管理的基本概念

首先我们来初略的讲讲远程管理的一些基本概念。对于我们使用的计算机来说,如果是个人计算机,就没有远程管理这一概念了,想用的时候开机就能使用,而对于我们的服务器来说,就不同了,对于服务器其一般都是放置在我们的IDC机房当中,我们通常是无法直接接触到服务器硬件,那么我们如果要对服务器进行操作的话,就只能通过远程管理的方式来对我们的服务器进行控制了。

目前我们常见的远程管理控制方式主要有以下几种:

RDP(remote desktop protocol)协议

远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的,更多有关RDP协议的可以查看百度百科 RDP

telnet

CLI界面下的远程管理工具,因为其历史非常悠久,几乎所有的操作系统都有该工具(telnet在传送数据时是通过明文传输的,没有加密,所以现在几乎都不会使用telnet来进行远程管理了)telnet

③SSH(Secure Shell)协议

CLI界面下的远程管理工具,几乎所有的操作系统都有(区别于telnet,SSH在进行数据传送时会对数据进行加密,所以SSH是比较安全的协议),几乎所有的类UNIX操作系统都是采用SSH来进行远程管理(Linux、BSD、Mac OS等)。

RFB(Remote FrameBuffer)协议

图形化远程管理协议,VNC(Virtual Network Computing)就是基于该协议的,上面讲的SSH在类UNIX下是CLI界面常用的远程管理方式,那么在类UNIX操作系统中,同样存在图形化的远程管理工具,VNC就是类UNIX系统下常用的图形化远程管理工具

二、SSH

在之前的一篇文章当中,也详细讲解了SSH的一些基本概念及原理,在这里将对SSH的一些概念进行补充,以及讲解一些SSH的一些常用命令。

SSH(Secure Shell)协议是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH在对数据进行传送过程中会使用非对称的加密算法来对数据进行加密,以此来保证远程管理数据的安全

SSH2是目前广泛使用的ssh版本,SSH协议是TCP协议,其占用的端口号是 22

我们绝大多数Linux版本默认使用的SSH是openssh,通过 ssh -V 命令可以查看ssh的信息

[root@xiaoluo ~]# ssh -VOpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

SSH分为服务器端和客户端,对于服务器端,SSH是默认开机启动的,作为常驻服务存在,我们可以通过 service sshd status 命令来查看

[root@xiaoluo ~]# service sshd statusopenssh-daemon (pid 1578) is running...

我们可以通过ssh 命令用以以SSH协议登陆其他主机,因为这里我们的windows是没有默认安装ssh客户端的,所以我这里也是在虚拟机中的 centos 里面远程登录

我们看到,当我们输入该命令以后,其会提示我们是否生成一个密钥,因为我们的SSH是加密的,所以我们输入yes ,此时就会给该远程登录端生成一个加密的密钥,这个密钥是保存在用户家目录下的.ssh/目录中,我们可以看一下里面的内容:

我们看到,其实这里保存的就是我们远程登录管理的一个ssh密钥。使用哪个用户名登陆,就会在该用户家目录下生成有给密钥,我们输入用户密码,就能远程登录上我们的主机了

对于其他一些常用的SSH命令,还有 scp 、rsync等这些命令

scp命令是用以在两台计算机之间进行快速的、加密的数据传输,命令的语法格式为:

scp 源文件目标地址

例如我们要将当前目录下的 xiaoluo.txt 这个文件复制到 172.25.215.40 这台主机的 /root 目录下,我们可以使用如下命令:

这样我们的文件就会复制到172.25.215.40 这台主机的 root目录下了,我们还可以为该命令加一些参数,例如-R递归、-p传输时保留文件权限和时间戳-C传输时进行数据压缩等参数。

三、VNC

刚才讲过,VNC(Virtual Network Computing)是一种Linux系统(或者BSD、Mac等)下常用的图形化远程管理工具,使用的是RFB协议

VNC跟SSH一样,也分为客户端与服务器端,我们在需要被远程访问的服务器上安装VNC的服务器端,其他计算机上安装VNC的客户端程序与其进行连接。

CentOS 6/RHEL 6中我们使用的是 tigervnc 来作为自带的VNC工具,默认这个工具是没有被安装的,我们如果想要使用VNC服务,就必须根据一下的操作步骤:

①首先我们需要通过 yum 来安装 tigervnc 这个工具

②安装完 tigervnc-server 服务器端程序以后我们需要对其进行配置,配置文件是 /etc/sysconfig/vncservers

我们看到,这个配置文件默认是没有任何配置信息的,所以我们如果需要使用VNC服务,就要修改其配置信息:

③配置好后,VNC还需要有单独的VNC密码才行,所以我们要对每个启用VNC服务的用户创建单独的VNC密码,通过 vncpasswd 命令(【注意:】必须要切换到该用户才行,否则VNC服务启动不起来):

④为用户设置好单独的VNC密码后,我们这个时候启动 vncserver 这个服务

⑤我们通常需要将iptables关闭或者将其里面的规则清空,或者在iptables里面加上一条规则,否则不能通过vnc客户端来远程登录vnc服务端

[root@xiaoluo ~]#iptables -F//清空我们的iptables

这个时候我们的VNC服务器端就配置好了,接下来我们就可以通过安装VNC客户端来远程登录了,对于VNC客户端程序,其在Linux、Mac、Windows等操作系统平台上都有客户端程序,我这里下载的是 windows 的vnc客户端来远程登录我们的CentOS服务器主机

下载完以后我们点击安装,安装过程中提示要我们进行注册,我们去其官网注册以后,然后将注册码填上去就行了,然后启动我们的VNC客户端程序,界面如下:

在VNC Server这里输入我们要远程登陆的主机IP,【注意:】(这里要写上IP以及端口号,还记得我们刚才在VNC服务器端配置的VNC主配置文件吗?没错,我们为每一个需要开启VNC的服务都自己定义了一个端口号,比如说刚才1端口号就是以 xiaoluo 用户登录),然后点击Connect

这里会提示我们需要连接到 172.25.215.40:1 这台主机上,我们点击Continue即可:

这个时候提示我要我输入端口号为1这个用户的密码,注意这个密码是我们上面创建的个人用户的VNC 密码,输入完点击OK

这个时候我们发现我们已经以GUI的方式远程登录到了我们的CentOS主机上了,这里要求我们输入 root 用户的密码,我们输入密码授权即可,然后点击Authenticate(第一次远程登录会提示让我们输入root密码进行授权,以后再登陆时就不需要输入root密码了)

此时我们发现,我们已经通过图形界面远程登录到我们的主机上了,我们可以在里面进行任何权限范围内的操作了,就跟直接使用服务器一样。

特别鸣谢原作者,转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/28/3102866.html

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180412B17CM100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券