这一节学习了如何在Linux和windows下对RHEL进行远程访问。主要包括了SSH的密码,密钥访问,XShell以及VNC的使用
首先来看看Linux下如何远程访问另外一台服务器。
现在我有两条服务器 rhce7-00 和 rhce7-01,IP地址如下所示
rhce7-01
rhce7-00
从00上远程访问01,很简单,直接输入 ssh IP地址即可 ,这是以当前用户(root)的身份进行访问。第一次连接的时候会确认指纹信息等等。
可以查看一下帮助信息 看看ssh命令能做哪些事情
如果想以指定用户身份登录,可以通过-l 选项或者电子邮件的格式指定
例如
在当前用户的家目录下有个隐藏目录 .ssh, ssh搭建的远程连接会自动把远程主机的信息保存在known_hosts文件里面,这样下次再连接的时候就不会询问指纹相关的问题了
如果想远程的打开图像工具怎么办?如下所示,直接运行firefox会报错
解决方式很简单,添加一个-X,就表明要打开X窗口了,再次运行firefox成功
firefox还会显示这是一个运行在rhce7-01上的进程
SSH访问远程服务器的时候,每次都会要求输入密码,如何避免这个麻烦呢?可以通过密钥的方式实现。基本原理是在当前主机上生成一对密钥,然后将公钥传送给远程主机,当进行远程访问的时候,对方会对一个随机值进行公钥加密,发送给本机,本机用私钥解密之后再发送回去,对方会对这个值进行匹配验证,如果相同,那么表示通过。豆子之前玩过一段时间aws,aws上的Linux虚拟机都是用这种密钥的方式进行远程访问的。
基本操作,首先生成一对密钥, 里面的passphrase是指的对私钥进行同步加密,这样的话,当用户在本机进行验证的时候,用户还必须输入passphrase进行同步解密。这里为了简便,我就不输入密码了
看看生成的这一对密钥
看看具体的内容
首先是私钥,这个保留在本机用来解密
然后是公钥,这个会发送给对方以便加密
通过ssh-copy-id将公钥传送给对方
传送完毕之后,直接访问则无需再输入密码
感兴趣的话还可以看看ssh-copy-id有哪些其他选项
切换到远程主机,看看对方的.ssh目录下生成了一个authorized_key 的文件,打开看看,内容和本机的公钥是一样的。
关于公钥,私钥,数据信封,证书等知识我不赘述了,豆子几年前拜读过某人的博客,解释的非常好,这里再转一下
http://www.cnblogs.com/1-2-3/archive/2007/09/17/colloquialism-digital-certificate-part1.html
接下来看看windows下面如何进行访问。豆子平常习惯使用putty或者secureCRT,这里老师推荐的是Xshell。安装完XManager之后,打开Xshell,设定好IP,输入用户名和密码就可以远程访问了。
如果在XShell使用密钥,基本过程和Linux类似,依然是生成密钥对,传送公钥到远程主机
点击Tools- New user key Wizard
选择算法和密钥长度
生成公钥
这个passphrase为了省事其实可以不写
保存公钥,完成
拷贝公钥到远程主机
把这个公钥复制到对应的位置,并修改名字
在XShell里面新建个连接就可以绑定了
最后我们来看看相关的ssh配置文件。在/etc/ssh目录下,sshd_config可以配置服务器角色的设定;ssh_config可以配置客户端角色的设定; ssh_host* 则是各种指纹文件
比如sshd可以配置是否允许密钥认证,或者密码认证
ssh里面可以配置端口,是否进行严格的密钥确认等等
如果想远程访问图形界面,还可以使用vnc,简单的说就是在服务器端安装vnc server,然后客户端安装vnc viewer进行访问;这个是个跨平台的工具,豆子在Windows,OSX和Linux下都经常使用vnc,甚至手机越狱了都是可以用vncviewer远程控制的。
红帽有官方文档具体介绍如何使用VNC工具
下面简单的截图演示一下
首先安装tigervnc-server
拷贝服务文件, 他的默认端口是5900,也可以给不同的用户自定义端口,比如5就表示5905端口
修改一下文件,其实就是把用户名绑定这个服务
把<user>替换成用户名
添加防火墙
开机自动运行,启动服务;有的时候enable之后还需要重启系统才能启动服务。
测试,这里我可以用IP:5905或者IP:5都是可以的
可以看见这个进程是绑定到我的beanxyz用户的
重复以上操作,绑定James端口到5904,登录显示为James