linux 远程桌面:SSH
来源:互联网 发布:网上做账软件 编辑:程序博客网 时间:2024/06/05 06:33
文章链接: http://harttle.com/2014/09/08/ssh.html
有时不在电脑旁却需要操作电脑,这时会用到远程桌面。它可以获得远程主机的Shell,与Adobe、QQ的远程控制不同的是,远程桌面利用操作系统服务和确定的网络协议来提供底层的远程控制。
对于微软的mstsc,使用RDP(Remote Desktop Protocol)协议;而linux远程多采用ssh(Secure Shell)进行安全的数据交换。
windows之间用mstsc远程很简单,唯一要注意的就是局域网的端口映射,毕竟windows是注重GUI的操作系统。然而在使用App Engine、VPS、ECS等服务器时,最有用的莫过于ssh和vim(当然,Emacs党仍然经久不衰)。本文介绍一些常用的ssh技巧和X11转发。
ssh 基础
ssh用于计算机之间的安全数据交换,数据采用公钥加密。服务器启动sshd服务,监听22端口;客户端用ssh连接到服务器。协议的整个过程大致如下:
- 服务器sshd启动时,生成密钥对,存放于
/etc/ssh/ssh_host_*
; - 客户端ssh发出请求连线请求;
- 服务器发送服务器的公钥给客户端;
- 客户端验证该公钥(通过公共密钥基础设施,现在还未普及,因此这时常常无法验证该公钥是否可靠,接受这个warning就可以);
- 客户端随机计算并发送自己的公钥给服务器;
- 采用这两对密钥开始加密的通信。
公私钥加密 又称 非对称加密 ,有很多可选的加密算法,常用的RSA算法是基于大数分解。每个通信方拥有自己的一对密钥(公钥和私钥),顾名思义公钥都是公开的用于加密,而私钥是保密的用于解密。
例如,Bob给Alice发的数据要用Alice的公钥进行加密,此密文只有Alice的私钥能解。公开密钥加密的关键便是公钥验证(避免公钥伪造),即公钥基础设施的建立。
# 连接到121.40.72.111,采用用户名harttlessh harttle@121.40.72.111# 连接到121.40.72.111,采用当前的local用户名ssh 121.40.72.111# 连接并启用X11转发ssh -X user@host# 启用trusted X11转发,当上述命令有错误时可尝试ssh -Y user@host
文件共享,可以用secure cp来拷贝文件:
scp something.local user@host:/to/your/path
也可以直接把磁盘挂载过去
# 服务器设置共享路径# file: /etc/export /home/dir 192.168.20.203(rw,no_root_squash,async)# 在客户端挂载该共享路径mount 192.168.20.111:/home/dir /home/dir
X11基础
X11是Unix的GUI系统,1984年由MIT开发,现在由xorg基金会接管。X11采用网络架构,包括X server和X client,它们通过socket进行通信。
远程桌面只要一个X11客户端,而不需要特殊的图形转发协议。这正是Unix的设计哲学带来的好处:一切皆文件。socket正是一种特殊的文件(即符合打开->读写->关闭的操作模式),因此X11采取的CS架构可以提供统一的接口(文件)。
常见术语
下面是一些与X11相关的术语,很常见的:
- X server 管理硬件、屏幕绘制和字体。接管着鼠标、键盘和屏幕,给各种各样的终端提供服务。
- X client 负责处理 X server 的事件处理。及时处理图形事件并通知 X server 进行绘图。
- X Window Manager 用来管理其他的 X client,进行统一的绘图,这样才能提供统一的桌面系统。否则各client间会互相干扰。
- X Display Manager 用来提供图形登录控制,一般在tty7。常见的有gdm,kdm等。
常用命令
startx
用来启动X,该脚本会调用xinit
分别启动X server和X client,它们的配置文件分别位于:
~/.xserverrc, /etc/X11/xinit/xserverrc~/.xinitrc, /etc/X11/xinit/xinitrc
在远程时,往往希望将远程主机的图形界面显示在本地,也就是实现远程桌面。这时需要在本地打开X server的访问控制。
# 将远程主机添加到X server访问控制列表xhost + 17.200.10.5# 关闭X server访问控制xhost +# 将远程主机从X server访问控制列表删除xhost - 17.200.10.5# 打开X server访问控制xhost -
然后,命令远程服务器将窗口显示在某个X client(本地)上。
setenv DISPLAY 128.100.2.16:0.0
ssh配置
对ssh进行设置,可以方便地完成自动登录、X11转发、保持在线等功能。ssh服务器与客户端配置文件分别为:
/etc/ssh/sshd_config/etc/ssh/ssh_config, ~/.ssh/config
一个客户端的示例配置如下:
# file: ~/.ssh/configHost bit Hostname 121.40.72.111 ServerAliveInterval 120 User harttle
X11转发
在服务器设置:
AllowTcpForwarding yesX11Forwarding yesX11DisplayOffset 10X11UseLocalhost yes
客户端设置:
ForwardX11 yes# 如果有大量的GUI绘制ForwardX11Trusted yes
加速登录
当需要登录多个shell时,让同一主机的所有会话使用同一个连接来避免重复登录。
Host examplehost.com ControlMaster auto ControlPersist yes ControlPath ~/.ssh/socket-%r@%h:%p
为了提高速度,可以采用数据压缩、指定ipv4以避免ipv6查找:
Compression yesAddressFamily inet
在线保持
在客户端可以定时发送信号,以保持在线:
ServerAliveInterval 120
相反地,也可以在服务器设定客户端在线间隔:
ClientAliveInterval 120
- linux 远程桌面:SSH
- linux脚本实现ssh自动登陆远程桌面
- 使用SSH+VNC实现安全的Linux远程桌面管理
- [置顶] 推荐linux ssh管理工具 remmina远程桌面 -- 替代 secureCRT
- linux 远程桌面
- linux远程桌面
- Linux远程桌面连接windows server 2003和ssh连接远程Linux控制台
- linux系统下的virtualbox在ssh中配置microsoft RDP(VRDE)远程桌面功能方法
- 【SSH工具】FinalShell|—服务器管理软件,远程桌面加速工具,支持Windows,Mac OS X,Linux
- Linux 远程桌面设置
- Linux远程桌面登录设置
- linux下使用远程桌面
- Linux 远程桌面 VNC
- linux的远程桌面
- Windows远程桌面控制Linux
- linux远程桌面链接。。。
- 远程桌面控制Linux/unix
- Linux——远程桌面
- Google浏览器 隐身模式 -incognito
- android 保存图片到数据库
- register_shutdown_function捕获致命错误
- JavaScript异常错误处理
- 为了IT,加强身体锻炼之【双盘腿打坐的好处】
- linux 远程桌面:SSH
- 只会左键断点?是时候试试这样那样断点了
- BCS和ECCS等合并系统简单对比
- Android.mk文档规范
- C++中常见的内存错误及其对策
- openGL拆分屏幕与图形旋转
- 基于BootStrap,不支持AJAX只支持表单提交的分页查询与排序组件
- Java SE 面试题
- linux文件系统如何进行文件存取