【51CTO译文】如果你组装了一台电脑,安装了Linux发行版,以便非专业用户或家人使用,那么你已在为他们提供一种安全可靠、功能完备的计算平台这条道路上迈出了头一步。不过,要是这个用户需要一番手把手指导,那么你迟早需要执行一些维护工作;毕竟,有些维护工作通过电话是没法向对方解释清楚的。
本教程涉及安装便于命令行访问和建立安全隧道的SSH,安装便于远程桌面访问的VNC,以及安装便于整体系统配置的Webmin。请注意:一旦你将SSH隧道访问机制建立并运行起来,就可以通过局域网,远程执行本教程的其余部分。实际上,如果你之后直接跳到端口转发部分,就可以通过互联网,处理本教程的其余阶段。
首先,假设你的客户端电脑(你的电脑)和远程电脑(对方的电脑)都连接到了你的局域网。然后,我们将在主人的家里安装一个路由器,并安装一个动态DNS服务器,这样我们就能在互联网上找到那台远程电脑。
使用基于SSH的VNC,获得远程桌面访问权。
逐步指南
第1步:安装网络
该教程假设,远程电脑和客户端电脑都接入到了你的局域网上。记下远程电脑的登录用户名和密码,及其IP地址(键入ifconfig,即可找到)。
第2步:安装SSH
想启用远程终端登录,就要安装SSH服务器,为此键入sudo apt-get install openssh-server(在红帽Linux发行版上,键入oryum -y install openssh- server)。以root用户身份,在文本编辑器中打开/etc/ssh/sshd_config,开始配置SSH。
第3步:配置SSH服务器
更改PubkeyAuthentication这一行,以便将其改成PubkeyAuthentication yes。确保PasswordAuthentication被设置成no。这是由于,我们想使用经过加密的密钥,而不是使用用户名和登记,远程登录到该电脑。保存文件,键入sudo service ssh restart,即可重启服务器。
第4步:生成密钥
我们需要生成一个公开密钥和一个私有密钥,那样我们无需使用密码和用户名,就能登录到SSH。键入ssh- keygen -t dsa,即可开始生成密钥。系统提示时,你可以按回车键,接受默认值;不过系统询问时,就要键入密码。
第5步:拷贝密钥
将公开密钥拷贝到将用于远程维护的那台电脑上。你只要在客户端电脑上键入ssh-copy-id [远程登录名]@[远程电脑的IP地址],就可以执行这一步。
第6步:测试SSH
通过键入ssh [远程用户名]@[远程IP地址],就可以借助SSH,从客户端电脑登录到远程电脑。这应该会为你在另一台电脑上提供命令行,而不提示你输入密码。用几个命令试一下,键入Ctrl+D组合键,即可终止会话。
第7步:文件复制(SSH)
你可以借助scp命令,将文件复制到远程电脑上,或者从远程电脑复制文件到本地。scp [远程用户]@[远程IP]:[本地文件] [目标目录],即可将一个或多个文件复制到远程电脑上;反之,则使用scp [本地文件] [远程用户]@[远程IP]:[目标目录]。
第8步:Web代理(SSH)
假设用户抱怨他们访问不了某个网站,或者访问不了整个互联网。我们可以使用SSH隧道机制来测试连接。键入ssh -D 8888 [用户名]@[IP地址],即可开始测试。这会建立一台本地代理服务器,该服务器其实通过远程电脑访问互联网。然后,你可以配置火狐浏览器,以便通过该代理服务器来访问互联网,只要在localhost上指定Socks 5代理服务器。如果你可以通过SSH登录到另一台电脑,并访问那个有问题的网站,那么问题肯定出在另一台电脑上的软件上,而不是出在网络上。
第9步:运行X应用程序(SSH)
你可以使用隧道来远程运行X应用程序。比如说,你要做的只需在GUI应用程序中编辑配置,无需使用全面的桌面共享。键入ssh -X [用户名]@[远程IP],即可打开连接。然后,你可以从命令行像平常那样启动应用程序。键入firefox,即可在远程电脑上启动火狐浏览器,并在你的本地桌面上与它进行联系。你可以把诸多操作简化为一个命令,只需键入ssh -f -T -X [用户名]@ [ip地址] [应用程序名称]。
第10步:安装VNC服务器
我们准备安装VNC,以便访问远程桌面。这个情况下,我们将忽视VNC服务器自己的安全功能,而是完全改而通过SSH建立隧道。首先是把VNC服务器安装在远程电脑上,只需键入sudo apt-get install x11vnc(或在红帽Linux发行版上,键入yum install vnc-server)。
第11步:建立VNC隧道,开启服务器
为VNC建立一条SSH隧道,只需键入ssh -L 5900:localhost:5900 [远程用户]@ [远程IP]。这个命令除了建立隧道外,还会启动隧道连接。在该终端中,键入x11vnc -safer -localhost -nopw -once -display :0。
第12步:连接至VNC
市面上有几款VNC客户软件,但本示例假设你安装了Vinagre。使用该客户软件连接至localhost处的VNC服务器。切记,我们连接到localhost,是因为我们在前一个步骤中建立了SSH隧道,以便所有数据包通过端口5900发送到远程电脑。你现在应该有了远程桌面访问权,可以访问远程电脑。要是这条连接有任何问题,请仔细检查终端中的文本输出,找找有无错误。
第13步:安装Webmin
进入到Webmin网站(www.webmin.com)的下载页面,下载适合你Linux架构的程序包。以Debian为例,安装.deb文件,为此只需键入sudo dpkg -i [你已下载的.deb文件的名称]。接下来,键入sudo apt-get -f install,即可安装依赖项。以红帽Linux为例,键入yum install [RPM的名称]。
第14步:测试Webmin
默认情况下,Webmin在SSL模式下运行,所以只要浏览到https://[IP address of remote computer]:10000,即可访问它。接受它所提供的浏览器证书。以Ubuntu为例,使用root用户名和密码,或者使用可以运行sudo的普通用户名和密码。将来,可以通过隧道连接至Webmin,以获得***的安全性,没必要在路由器上开启另外的端口。我们使用了与VNC同样的方法。键入ssh -L 10000:localhost:10000 [用户名]@[IP地址],目的是为了建立它,然后浏览到https://localhost:10000。
第15步:建立远程网络
现在是让我们为远程维护而建立的那台电脑连回到总部的时候了。一旦该电脑重新连接至网络,就要确保它可以像平常那样访问互联网。
第16步:设置静态IP地址
Linux发行版不一样,如何设置静态IP地址的方法也不一样。在Ubuntu电脑上,点击控制面板中的Network(网络)图标,选择Edit…(编辑…),然后选择IPv4 Settings(IPv4设置)选项卡。从Method:(方法:)下拉列表中选择Manual(手动)。现在,添加一个属于当前子网成员的IP地址。比如说,如果键入ifconfig后显示当前IP地址是192.168.0.5,就选择一个比它高的地址,比如192.168.0.100。你可能得为你的互联网服务提供商(ISP)手动添加DNS服务器地址。上网搜索一下。接受变更内容,重置电脑。
第17步:端口转发
充分利用路由器的说明文档(或Portforward),建立端口转发机制。你需要将端口22转发至我们已设置的那个静态IP地址。
第18步:在互联网上找到远程IP地址
你可以要求运行远程系统的对方只要访问whatismyip.com,然后通过电子邮件将其当前IP地址发过来,但是建立动态DNS却是一种更可靠安全的解决方案。进入到No-IP网站(www.noip.com),设置一个免费帐户。现在安装ddclient程序包。
第19步:安装ddclient
在/etc/ddclient.conf中添加/更改下面这几行:
- protocol=dyndns2
- use=web, web=checkip.dyndns.com/, web-skip='IP Address' server=dynupdate.no-ip.com
- login=user name
- password='password'
- [hostname].no-ip.biz
- run_daemon=true
现在重启ddclient,只需键入sudo service ddclient restart。
原文链接:http://www.linuxuser.co.uk/news/pc-remote-maintenance-tutorial