本篇文章将讲解Linux下常用的两个远程管理工具,一个是基于CLI(命令行模式)的SSH,另一个是基于GUI(图形用户界面模式)的VNC。
一、远程管理的基本概念
首先我们来初略的讲讲远程管理的一些基本概念。对于我们使用的计算机来说,假如是个人计算机,就没有远程管理这一概念了,想用的时侯开机才能使用,而对于我们的服务器来说,就不同了,对于服务器其通常都是放置在我们的IDC机房当中,我们一般是难以直接接触到服务器硬件,这么我们假如要对服务器进行操作的话,就只能通过远程管理的方法来对我们的服务器进行控制了。
目前我们常见的远程管理控制方法主要有以下几种:
①RDP(remotedesktopprotocol)合同
远程桌面合同,我们常用的windows操作系统就是的远程桌面管理就是基于该合同的,更多有关RDP合同的可以查看百度百科RDP
②telnet
CLI界面下的远程管理工具,由于其历史十分悠久,几乎所有的操作系统都有该工具(telnet在传送数据时是通过明文传输的,没有加密,所以如今几乎都不会使用telnet来进行远程管理了)telnet
③SSH(SecureShell)合同
CLI界面下的远程管理工具,几乎所有的操作系统都有(区别于telnet,SSH在进行数据传送时会对数据进行加密,所以SSH是比较安全的合同),几乎所有的类UNIX操作系统都是采用SSH来进行远程管理(Linux、BSD、MacOS等)。
④RFB(RemoteFrameBuffer)合同
图形化远程管理合同,VNC(VirtualNetworkComputing)就是基于该合同的,里面讲的SSH在类UNIX下是CLI界面常用的远程管理方法linux下socket编程,这么在类UNIX操作系统中,同样存在图形化的远程管理工具,VNC就是类UNIX系统下常用的图形化远程管理工具
二、SSH
在之前的一篇文章当中,也详尽讲解了SSH的一些基本概念及原理,在这儿将对SSH的一些概念进行补充,以及讲解一些SSH的一些常用命令。
SSH(SecureShell)合同是Linux、Unix、Mac及其他网路设备最常用的远程CLI管理合同,SSH在对数据进行传送过程中会使用非对称的加密算法来对数据进行加密,借此来保证远程管理数据的安全
SSH2是目前广泛使用的ssh版本,SSH合同是TCP合同,其占用的端标语是22
我们绝大多数Linux版本默认使用的SSH是openssh虚拟主机 linux,通过ssh-V命令可以查看ssh的信息
[root@xiaoluo ~]# ssh -VOpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
SSH分为服务器端和顾客端,对于服务器端,SSH是默认开机启动的,作为常驻服务存在,我们可以通过servicesshdstatus命令来查看
[root@xiaoluo ~]# service sshd statusopenssh-daemon (pid 1578) is running...
我们可以通过ssh命令用以以SSH合同登入其他主机,由于这儿我们的windows是没有默认安装ssh顾客端的,所以我这儿也是在虚拟机中的centos上面远程登陆
我们可以通过sshroot@172.25.215.40命令来进行登录,root是我们须要登录的用户名,@旁边跟的是我们的ip地址
我们听到,当我们输入该命令之后,其会提示我们是否生成一个秘钥,由于我们的SSH是加密的,所以我们输入yes,此时都会给该远程登陆端生成一个加密的秘钥,这个秘钥是保存在用户家目录下的.ssh/目录中centos vnc安装,我们可以看一下上面的内容:
我们看见centos vnc安装,虽然这儿保存的就是我们远程登陆管理的一个ssh秘钥。使用那个用户名登录,都会在该用户家目录下生成有给秘钥,我们输入用户密码,能够远程登陆上我们的主机了
我们可以通过sshroot@172.25.215.40命令远程登陆到我们的主机,我们有时假如登录远程主机只是为了执行某条命令,此时我们可以直接在前面跟命令名子即可,比如sshroot@172.25.215.40ls,这样我们就只会登录远程主机之后执行完命令就返回了
对于其他一些常用的SSH命令,还有scp、rsync等这种命令
scp命令是用以在两台计算机之间进行快速的、加密的数据传输,命令的句型格式为:
scp源文件目标地址
比如我们要将当前目录下的xiaoluo.txt这个文件复制到172.25.215.40这台主机的/root目录下,我们可以使用如下命令:
[root@xiaoluo ~]# scp xiaoluo.txt root@172.25.215.40:/root/
这样我们的文件都会复制到172.25.215.40这台主机的root目录下了,我们还可以为该命令加一些参数,比如-R递归、-p传输时保留文件权限和时间戳-C传输时进行数据压缩等参数。
三、VNC
刚刚讲过,VNC(VirtualNetworkComputing)是一种Linux系统(或则BSD、Mac等)下常用的图形化远程管理工具,使用的是RFB合同
VNC跟SSH一样,也分为顾客端与服务器端,我们在须要被远程访问的服务器上安装VNC的服务器端,其他计算机上安装VNC的顾客端程序与其进行联接。
CentOS6/RHEL6中我们使用的是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顾客端程序,界面如下:
在VNCServer这儿输入我们要远程登录的主机IP,【注意:】(这儿要写上IP以及端标语,还记得我们刚刚在VNC服务器端配置的VNC主配置文件吗?没错,我们为每一个须要开启VNC的服务都自己定义了一个端标语,例如说刚刚1端标语就是以xiaoluo用户登入),之后点击Connect
这儿会提示我们须要联接到172.25.215.40:1这台主机上,我们点击Continue即可:
这个时侯提示我要我输入端标语为1这个用户的密码,注意这个密码是我们前面创建的个人用户的VNC密码,输入完点击OK
这个时侯我们发觉我们早已以GUI的形式远程登陆到了我们的CentOS主机上了,这儿要求我们输入root用户的密码,我们输入密码授权即可,之后点击Authenticate(第一次远程登陆会提示让我们输入root密码进行授权,之后再登入时就不须要输入root密码了)
此时我们发觉,我们早已通过图形界面远程登陆到我们的主机上了,我们可以在上面进行任何权限范围内的操作了,就跟直接使用服务器一样。