有若干台服务器需要远程管理,选择了远程管理软件teamviewer,teamviewer能够穿越防火墙、路由器,支持各类主流操作系统,任何一方都不需要固定ip,也就是说只要你的机器能够联网,就可以使用teamviewer来远程控制。
1. teamviewer安装
首先在自己的pc上和服务器上都安装teamviewer,pc是win7系统,服务器是ubuntu14.04,分别选择windows版和linux版安装即可。
windows版安装很简单,下载下来一路点next 就行。
linux版是deb安装包,可以按照如下命令安装。
更新源:sudo apt-get updatesudo dpkg -i teamviewer.deb
安装相关依赖:sudo apt-get -f install
sudo dpkg -i teamviewer.deb
2. teamviewer使用
teamviewer会为每台机器分配一个固定的唯一的ID,作为远程连接时的标识,为了安全起见,默认情况密码会随机生成,并随着teamviewer或者机器的重新启动而改变。(请注意红色的字,楼主事先并不了解这点,所以给自己挖了一个大坑,才有了下面一系列尝试)
有了各台服务器的teamviewer的ID以及密码,就可以愉快的躺在家里用pc来操控它们啦,非常方便!
然而,不幸的是,当楼主隔了几天再次在pc上连接这几台服务器时,发现只剩一台能连上了,其它几台均显示密码无效。由于几天前服务器硬件有故障,维修时重启了其它几台,密码也随之变更。不幸中的万幸,这几台服务器互相可以用ssh登录。
3. ssh 获取teamviewer信息
我的目标是要能够通过ssh获取其他几台服务器的ID并设置密码,这样在pc上就可以重新控制它们。
首先用teamviewer连接上唯一能被远程控制的服务器,然后ssh登录到其它几台服务器上。找到teamviewer所在文件夹,默认在/usr/bin。
(1) teamviewer info :会打印出teamviewer版本,daemon的运行情况,本机ID。
(2) sudo teamviewer passwd NewPassword :设置teamviewer密码,将NewPassword替换为你要设置的密码。
上面的两步是建立在teamviewer daemon已经启动的情况,如果之前将默认的teamviewer daemon随系统启动的设置作了更改,还需要重新启动teamviewer,命令如下。
sudo teamviewer start:启动teamviewer(还有别的选项stop,status)
恢复teamviewer daemon随系统启动的设置:sudo teamviewer enable(禁止为disable)
参考:http://www.tonisoto.com/2013/07/launching-teamviewer-remotely-throught-ssh/
4. x11vnc安装及使用
前面所述解决了远程控制已安装过teamviewer的服务器的问题,还有一个新问题,由于当时还有一台服务器网卡出了问题,没能成功安装teamviewer,因此还需要通过ssh安装及获取该台服务器上teamviewer的信息。
安装过程和上面描述的一样。启动过程看起来也正常。但是就是连接不上!teamviewer连接时出现了各种错误:验证拒绝,对方未连入路由器等。看来必须得换种桌面控制方式,看看究竟发生了什么。
选择了x11vnc,在未安装teamviewer的服务器上安装,过程如下:
安装:sudo apt-get install x11vnc
设置密码:sudo x11vnc -storepasswd
设置密码文件:sudo x11vnc -storepasswdin/etc/x11vnc.pass
sudo cp/home/user/.vnc/passwd/etc/x11vnc.pass (其中/home/usr/.vnc/passwd替换为设置密码步骤中密码存储的位置)
新增/etc/init.d/x11vnc.conf文件,目测是设置x11vnc随开机启动以及启动参数,端口为5900,内容如下:
start on login-session-start
script
/usr/bin/x11vnc-auth/var/run/lightdm/root/:0-noxrecord-noxfixes
-noxdamage -rfbauth/etc/x11vnc.pass-forever-bg-rfbport5900-o
/var/log/x11vnc.log
end script
保存后,重启该台服务器。
参考:http://blog.163.com/yes_id/blog/static/28715884201232573015611/
5. vncviewer安装及使用
在http://www.realvnc.com/download/viewer/上下载相应vncviewer版本,楼主选择的是linux 64 binary,下载下来直接在命令行里./ 运行即可。
输入目标机器即安装了x11vnc的服务器的ip地址,然后连接,输入x11vnc设置的密码即可。
成功打开目标服务器后,登录进去,终于发现了之前teamviewer连接该机器一直失败的原因。。。teamviewer第一次启动,需要点击同意它们的服务条款。。。
点击同意之后,成功从pc上通过teamviewer远程控制了该机器。
6. 后记
为了长久的得到这几台服务器的远程控制权,可以使用teamviewer提供的无人值守方案,即点击teamviewer左上角"Connection",然后选择设置无人值守访问"Setup unattended access",设置永久性的固定密码。另外,还可以在左上角的"Extra->Options"的Secure里配置访问的黑白名单,以及其他更具体的各项配置。
7. 其他
(1) ssh登录时,如不指定用户名,则默认以该命令发出时该机器的当前用户登录目标机器;
(2) 通过ssh运行图形软件的方法:
http://zhidao.baidu.com/link?url=s-f4eIBUHOilfkVGlXAQPU9MBdG5IUYrjF899mkUVyCf5pXQ7gz5noCTP3-qH3OPeMCritJ-iali5Os3vjLB-LicD3dAqhJIHZZ72Wl1gbG
服务器端:编辑/etc/ssh/sshd_config中的以下内容 启用AllowTcpForwarding 启用X11Forwarding 将X11DisplayOffset设定为10. 启用X11UseLocalhost 客户机端:编辑/etc/ssh/ssh_config中的以下内容 启用ForwardX11连接时ssh -X或者ssh -Y就可以了
(3) ssh 远程屏幕截图
https://tdapower.wordpress.com/2011/05/31/ubuntu-take-screenshots-from-remote-pc-through-ssh/
(4) ssh 无密码验证及ssh localhost 仍需密码的解决方案
http://blog.csdn.net/hackerwin7/article/details/28109073
原链接:http://blog.csdn.net/berylfanzi/article/details/50969303