这一节学习了如何在Linux和windows下对RHEL进行远程访问。主要包括了SSH的密码,密钥访问,XShell以及VNC的使用


首先来看看Linux下如何远程访问另外一台服务器。


现在我有两条服务器 rhce7-00 和 rhce7-01,IP地址如下所示


rhce7-01

RHCE 学习笔记(10) 远程访问_第1张图片


rhce7-00

RHCE 学习笔记(10) 远程访问_第2张图片


从00上远程访问01,很简单,直接输入 ssh IP地址即可 ,这是以当前用户(root)的身份进行访问。第一次连接的时候会确认指纹信息等等。


RHCE 学习笔记(10) 远程访问_第3张图片


可以查看一下帮助信息 看看ssh命令能做哪些事情

RHCE 学习笔记(10) 远程访问_第4张图片


如果想以指定用户身份登录,可以通过-l 选项或者电子邮件的格式指定


例如

wKioL1Sje_jgtbjmAABsLhCXCBA784.jpg


wKioL1Sje_rAlHAuAACABzQwjZE259.jpg


在当前用户的家目录下有个隐藏目录 .ssh, ssh搭建的远程连接会自动把远程主机的信息保存在known_hosts文件里面,这样下次再连接的时候就不会询问指纹相关的问题了


RHCE 学习笔记(10) 远程访问_第5张图片


如果想远程的打开图像工具怎么办?如下所示,直接运行firefox会报错


RHCE 学习笔记(10) 远程访问_第6张图片


解决方式很简单,添加一个-X,就表明要打开X窗口了,再次运行firefox成功

RHCE 学习笔记(10) 远程访问_第7张图片


firefox还会显示这是一个运行在rhce7-01上的进程

RHCE 学习笔记(10) 远程访问_第8张图片



SSH访问远程服务器的时候,每次都会要求输入密码,如何避免这个麻烦呢?可以通过密钥的方式实现。基本原理是在当前主机上生成一对密钥,然后将公钥传送给远程主机,当进行远程访问的时候,对方会对一个随机值进行公钥加密,发送给本机,本机用私钥解密之后再发送回去,对方会对这个值进行匹配验证,如果相同,那么表示通过。豆子之前玩过一段时间aws,aws上的Linux虚拟机都是用这种密钥的方式进行远程访问的。


基本操作,首先生成一对密钥, 里面的passphrase是指的对私钥进行同步加密,这样的话,当用户在本机进行验证的时候,用户还必须输入passphrase进行同步解密。这里为了简便,我就不输入密码了


RHCE 学习笔记(10) 远程访问_第9张图片


看看生成的这一对密钥


wKioL1SjfAeQCtFAAABb4XnNu9w146.jpg


看看具体的内容


首先是私钥,这个保留在本机用来解密


然后是公钥,这个会发送给对方以便加密

RHCE 学习笔记(10) 远程访问_第10张图片


通过ssh-copy-id将公钥传送给对方

RHCE 学习笔记(10) 远程访问_第11张图片


传送完毕之后,直接访问则无需再输入密码

wKioL1SjfBCzxFKaAABdM-gSLVs729.jpg


感兴趣的话还可以看看ssh-copy-id有哪些其他选项

RHCE 学习笔记(10) 远程访问_第12张图片


切换到远程主机,看看对方的.ssh目录下生成了一个authorized_key 的文件,打开看看,内容和本机的公钥是一样的。


RHCE 学习笔记(10) 远程访问_第13张图片


关于公钥,私钥,数据信封,证书等知识我不赘述了,豆子几年前拜读过某人的博客,解释的非常好,这里再转一下

http://www.cnblogs.com/1-2-3/archive/2007/09/17/colloquialism-digital-certificate-part1.html




接下来看看windows下面如何进行访问。豆子平常习惯使用putty或者secureCRT,这里老师推荐的是Xshell。安装完XManager之后,打开Xshell,设定好IP,输入用户名和密码就可以远程访问了。


RHCE 学习笔记(10) 远程访问_第14张图片


如果在XShell使用密钥,基本过程和Linux类似,依然是生成密钥对,传送公钥到远程主机


点击Tools- New user key Wizard

RHCE 学习笔记(10) 远程访问_第15张图片


选择算法和密钥长度

RHCE 学习笔记(10) 远程访问_第16张图片


生成公钥

RHCE 学习笔记(10) 远程访问_第17张图片


这个passphrase为了省事其实可以不写

RHCE 学习笔记(10) 远程访问_第18张图片


保存公钥,完成

RHCE 学习笔记(10) 远程访问_第19张图片

RHCE 学习笔记(10) 远程访问_第20张图片


拷贝公钥到远程主机

RHCE 学习笔记(10) 远程访问_第21张图片


把这个公钥复制到对应的位置,并修改名字

RHCE 学习笔记(10) 远程访问_第22张图片


在XShell里面新建个连接就可以绑定了

RHCE 学习笔记(10) 远程访问_第23张图片

RHCE 学习笔记(10) 远程访问_第24张图片

RHCE 学习笔记(10) 远程访问_第25张图片


最后我们来看看相关的ssh配置文件。在/etc/ssh目录下,sshd_config可以配置服务器角色的设定;ssh_config可以配置客户端角色的设定; ssh_host* 则是各种指纹文件


wKioL1SjfCrwxj7VAACUAsBZ5Oo886.jpg


比如sshd可以配置是否允许密钥认证,或者密码认证


RHCE 学习笔记(10) 远程访问_第26张图片


ssh里面可以配置端口,是否进行严格的密钥确认等等

RHCE 学习笔记(10) 远程访问_第27张图片



如果想远程访问图形界面,还可以使用vnc,简单的说就是在服务器端安装vnc server,然后客户端安装vnc viewer进行访问;这个是个跨平台的工具,豆子在Windows,OSX和Linux下都经常使用vnc,甚至手机越狱了都是可以用vncviewer远程控制的。


红帽有官方文档具体介绍如何使用VNC工具

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-TigerVNC.html


下面简单的截图演示一下


首先安装tigervnc-server

wKioL1SsbLuDqoqiAABBVqDjKkM562.jpg


拷贝服务文件, 他的默认端口是5900,也可以给不同的用户自定义端口,比如5就表示5905端口

wKiom1Ssa_vi5f-YAABZtoNp79Y613.jpg


修改一下文件,其实就是把用户名绑定这个服务

wKioL1SsbLuDUNWfAAA-jKeX9k8535.jpg


替换成用户名

RHCE 学习笔记(10) 远程访问_第28张图片


添加防火墙

wKioL1SsbLzSE-PBAACICwJ9e7Y277.jpg


开机自动运行,启动服务;有的时候enable之后还需要重启系统才能启动服务。

wKiom1Ssa_2TUG1wAABqg-cYyAI499.jpg


测试,这里我可以用IP:5905或者IP:5都是可以的

RHCE 学习笔记(10) 远程访问_第29张图片


可以看见这个进程是绑定到我的beanxyz用户的

RHCE 学习笔记(10) 远程访问_第30张图片


重复以上操作,绑定James端口到5904,登录显示为James

RHCE 学习笔记(10) 远程访问_第31张图片