平时我用putty远程到LINUX上,会在上面写些QT测试程序,可是GUI程序在LINUX主机上,需要通过一定手段将界面传送到本地,这就需要在Windows上装上X SERVER以实现远程 使用GUI程序。

这里我描述下基本原理,和Putty和LINUX端的配置。

基本原理:

LINUX下的OpenSSh具有X转发功能,将LINUX主机的X程序通过SSH的管道转发给客户端,于是当putty(或SecureCRT)

连接到主机,接收到LINUX主机转发回来的程序的交互时,将其交给WINDOWS系统下的X SERVER来管理和显示,这样就可以远程使用LINUX的X程序。

Linux要配置SSH服务器允许X11转发。

编辑/etc/ssh/sshd_config, 找到X11Forwarding这一行,如果没有则手动添加:

X11Forwrding yes #允许X11转发

putty的配置

Connection->SSH->X11,按照下图配置,即可。

putty 如何进入hive_putty 如何进入hive

4、使用密钥对实现安全快捷的无密码登陆?

每次登陆Linux都要输密码是不是有点烦?看到SecureCRT可以保存密码是不是有点心动?不用急,PuTTY也有,而且更安全,那就是使用密钥认证方式登陆。

使用Putty工具集中的puttygen.exe生成密钥对,如下图所示:

putty 如何进入hive_密钥对_02

图中显示的一长串的字符串是公钥,下面可以写入注释(一般用自己的邮件名),以及给私钥设密码,该密码用于保护私钥,防止私钥丢失被人盗用,在登陆时如果有设密码会要求输入,注意这个密码与之前登陆用的密码并不一样,私钥的密码不会传输到网络上。由于我们要实现无密码登陆,所以这里不要给私钥加密。

生成完后,记得保存私钥,后面需要用到,公钥可以不保存,用该软件打开私钥就可以查看公钥。

登陆LINUX,将公钥写入到SSH的认证文件中:

$cd ~$mkdir .ssh$chmod 700 .ssh$cat > .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhDdHT0KV+2fM7+w7Q0d+H4tQSzdcqUJGiWhjJRbn254KE5yOh/X23/14m4nmgeq2Tbs6hx7c6YZVgLaoTpGMz/9Lmwz16wEiuRu1xzIZFTU+TqTLNrrYBziWz1SkREwD4V7iaKp3YTaEykpDc+nCZSb0gv8i1+mfj9Lxt0fNxTqF+otf8oWCCsN4a8rgZnEjYcCYqO7v/vOY2v14en8OjMWberfNFEuD5Ld8t/5up7LMtlKiYakjvM0GFjWmBu1+TvdW7BefU4wgUgBHwbjpnpJiOKZ/1NjjXOK1en0ZzKsN5awuNWycuiRJ89IFCesY0UfC3hCjnjyy3F+zJsUOKw== pheye_rsa-key-20140403(将公钥内容拷贝过来,然后按Ctrl+D退出编辑)

$chmod 600 .ssh/authorized_keys

打开PuTTY,加载对应的Session,设置登陆名称:

connection->Data->Auto-login username

putty 如何进入hive_密钥对_03

以及设置私钥文件(Connection->SSH->Auth):

putty 如何进入hive_putty 如何进入hive_04

保存Session, 以后登陆就不用再输密码了。

5、操作习惯(Alt+Enter全屏以及字体配置)?

a)由于长时间在LINUX上编辑代码时,自然要将PuTTY配置得舒适些。

编辑代码时,我都会将PuTTY切成全屏,默认PuTTY不支持Alt+Enter进行全屏切换,按如下界面修改即可支持。

Window->Behaviour

putty 如何进入hive_密钥对_05

b)建议进入Window->Apperance根据自己习惯调整字体。

平时我使用Monaco或Courier字体,12号,粗体。

6、附录

如果依据本文章配置无法达到目的,请先检查下LINUX上SSH服务器的配置文件/etc/ssh/sshd_config是否正确,以下是本篇文章相关的一些配置,仅供参考。

PermitEmptyPasswords no #不允许空密码登陆
PasswordAuthentication yes #允许密码方式登陆
PermitRootLogin no #不允许ROOT登陆
RSAAuthentication yes #允许RSA认证,必须yes
PubkeyAuthentication yes #允许公钥认证,必须yes
AuthorizedKeysFile%h/.ssh/authorized_keys #用于用户认证的公钥文件名称,%h表示用户家目录
#有关X11的配置
X11Forwarding yes #允许X11转发