SSH常见问题



可以访问主节点,但是无法开启图形显示

删除用户目录下的 “.Xauthority”文件,并重新登录。


主节点可以登录,但无法访问子节点 

最多的情况是用户目录下的.ssh/目录中的known_hosts文件出错,删除其或者目录内所有文件。


可以访问但是报错

  • error in locking authority file /home/user/.Xauthority
通过文件".ssh/config",用户自定义自己的ssh登录选项,禁用自动X11 Forward如下:

#This file have the same function as /etc/.ssh/ssh_config
Host *

    ForwardAgent no
    ForwardX11 no
#Please try to use ssh -Y for X11 forwarding

为防止终端停止活动:

服务端:
ClientAliveInterval 60 数值是秒 设置为60,就是1钟.
ClientAliveCountMax 10 设置允许超时的次数。比如10
则代表允许超时 600秒 = 10分钟

客户端:
TCPKeepAlive yes
ServerAliveInterval 60

这里似乎只客户端设置即可。


为防止网络故障出现时数据丢失

可使用 GNU_Screen, 同时软件还可以共享终端、实时互动。


用Xming打开服务器上的X11程序

为避免服务端和客户端的概念混淆,以下客户端总是指代使用putty的计算机,而服务端总是指代需要用putty ssh 登陆的远端服务器,即使在涉及X11 Server的部分也是如此,比如我们这里讲X11 Service安装在客户端的(这不同于通常将安装有X11 Server的计算机成为服务端)。

使用Xming的原因

建议使用Xming而非X-win32是因为,Xming是免费的X11 server,并且持续更新中,不会因为版本旧而遇到兼容问题。而x-win32是收费软件,还不一定好用,例如:在使用x-win32+putty访问打开centos6.3服务器上的matlab2011a,并运行下面程序时,会遇到报错:openGL is installed incorrectly。

H=1:1000;hist(H,1000)

putty和xming下载安装

putty和xming的下载可到其项目地址

http://www.putty.org/

http://www.straightrunning.com/XmingNotes/

putty下载后可直接打开使用,Xming安装时可以选择同时内置putty(默认),也可以取消内置,一般选择取消集成putty,其他一路默认。

远程打开服务器上的X11程序

客户端Xming的X11 Server服务可以有两种方式,一种是不开启Access Control,一种开启此服务。开启此服务可以阻挡没有认证的远端服务器发出的X11显示请求,否则是完全开放客户端的X11服务给任何请求。开启Access Control会比较安全,但是配置比较复杂,很可能问题比较多。我们首先介绍简单的:

1、不启用X11 Sever 的 Access Control

安装Xming后,一定以XLaunch方式打开,并注意勾选No Access Control,其他默认即可。然后开启putty,之后一定要在putty > Connection > SSH > X11 中勾选Enable X11 Forwarding,之后在 X display local 中填写:localhost:0,SSH进入服务服务器,即可开启X11程序。有时偶尔需要export DISPLAY=独户端IP:0.0 

2、启用X11 Sever 的 Access Control

安装Xming后,可以选择直接打开Xming即可,默认是启用 Access Control。然后使用putty登陆服务器:一定要在putty > Connection > SSH > X11 中勾选Enable X11 Forwarding,之后可以在 X display local 填写:localhost:0。但有时localhost:0是无效的,无法启动DISPLAY:Can't open display: ... ,或者键入xhost + 会显示错误信息,如:PuTTY X11 proxy: wrong authentication protocol attemptedxhost:  unable to open display ... 在正确的配置时,xhost + 的正确输出结果应该是:access control disabled, clients can connect from any host xhost - 的正确输出是:access control enabled, only authorized clients can connect 

如果无法启动客户端的X11 Server DISPLAY,此时可在服务器的终端中键入命令:

$ xauth list
myhostname/unix:12  MIT-MAGIC-COOKIE-1  5195ba0c5b4sdfasdfasc0bda2d96c0b8ea

那么对应应该调整DISPLAY显示变量为export DISPLAY=localhostname:displaynumber.screennumber,这里displaynumber为12(根据不同机器很可能不是12,请自行查看 xauth list 得到),screennumber

export DISPLAY=localhost:12.0 
或是 
export DISPLAY=myhostname:12.0

此时可再次使用xhost -检验显示状态,状态无误,应该就可以开启X11图形程序了,如xclock

如果仍然报错,很可能是因为 xauth 使用的认证文件出现错误或冲突,认证文件默认为用户目录下的.Xauthority文件原因可能是由于home目录是直接从旧系统的home继承的,保留了旧系统的认证信息,这与新系统发生了冲突,也导致xauth list命令的结果会出现重复的号码和旧的主机名。解决办法很简单,按照步骤依次为:rm -f ~/.Xauthority (删除用户目录下得授权文件.Xauthority) >>> ls -la (确认已删除) >>> exit (退出SSH命令,或者putty) >>> 关闭Xming >>> 开启Xming >>> 开启putty或进入SSH >>> xauth list (得到displaynumber) >>> export DISPLAY=localhost:displaynumber.0 >>> xhost - (检验显示是否正常,可选择省略过) >>> 开启X11图形程序。




【其他参考】

http://www.benjr.tw/node/497

关于ssh的简单介绍:http://benjr.tw/node/105

http://blog.163.com/caizf1987@126/blog/static/13212128020104611592660/

http://cicikasa.blog.163.com/blog/static/13757535520103111714508/

你可能感兴趣的:(windows,linux,ssh,X11,Xming)