远程管理:teamviewer,ssh,x11vnc,vncviewer

时间:2022-02-14 22:12:17

有若干台服务器需要远程管理,选择了远程管理软件teamviewer,teamviewer能够穿越防火墙、路由器,支持各类主流操作系统,任何一方都不需要固定ip,也就是说只要你的机器能够联网,就可以使用teamviewer来远程控制。


1. teamviewer安装

首先在自己的pc上和服务器上都安装teamviewer,pc是win7系统,服务器是ubuntu14.04,分别选择windows版和linux版安装即可。

windows版安装很简单,下载下来一路点next 就行。

linux版是deb安装包,可以按照如下命令安装。

更新源:sudo apt-get update
sudo 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/


xwd -out  screenshot.xwd  -root -display :0.0


(4) ssh 无密码验证及ssh localhost 仍需密码的解决方案

http://blog.csdn.net/hackerwin7/article/details/28109073


原链接:http://blog.csdn.net/berylfanzi/article/details/50969303