Linux工具:有必要撑握的SSH技巧

| 评论(2) | 暂无引用通告

-->

  如果你只是一个普通的Linux用户的话也许你只是通过ssh客户端使用密码认证访问远程的shell和命令执行,然而这些只是ssh的一小部分功能,下面我们介绍几个使用ssh的小技巧,撑握了这些技巧可以使你的工作更快捷高效。

使用公钥作为身份验证机制,见以前的文章

  openssh中使用公钥验证

使用最快的方式登录服务器,见以前的文章

  Turbo模式的ssh登录

轻松的在不同主机间漫游,见以前的文章

  使用ssh-agent

加密X流量

  如果想运行远程的X11应用程序就需要在本机设定xhost +remoteip然后登陆到远程主机设定$DISPLYER变量,X11的流量是明文传输,又麻烦不安全,openssh提供X11转发功能,可以轻松安全的运行远程X11程序:

  使用X11转发必需在服务器端启用此功能,编缉/etc/ssh/sshd_config

X11Forwarding yes
  然后运行下面命令进行X11转发

[root@supersun.biz ~]#ssh -X supersun
Last login: Thu Oct 18 10:57:10 2007 from admin
[root@supersun ~]# echo $DISPLAY
localhost:10.0
[root@supersun ~]# ethereal &
[1] 16169
[root@supersun ~]#
  如果服务器端没有启用X11转发(X11Forwarding no)则输出就是这样的了:

[root@supersun.biz ~]# ssh -X supersun
Last login: Thu Oct 18 13:19:16 2007 from admin
[root@supersun ~]# ethereal
(ethereal:16346): Gtk-WARNING **: cannot open display: 
  如果工作需要,需要经常在远程运行X11程序,可以设定客户端配置文件/etc/ssh/ssh_conf

   ForwardX11 yes
  这样就不用添加-X选项了,配合前面的Turbo模式的ssh登录

 [root@supersun.biz ~]#supersun ethereal &
[1] 2869
[root@supersun.biz ~]#
  非常快捷方便。更多授权方面的知识可以查阅<SSH权威指南一书>。

通过ssh转发端口

  前面的X11转发是端口转发的一个特例,下面来学一学使用openssh实现一般的端口转发

[root@supersun.biz ~]#ssh -L110:mail:110 supersun
Last login: Thu Oct 18 13:47:59 2007 from supersun.biz

  这样就建立了一个ssh遂道:

supersun.biz:110<--在本机--->supersun.biz的ssh程序<----ssh加密--->supersun的sshd<---未加密--->mai:110

  如果我们使用ssh -L110:localhost:110 mail这样本机的邮件客户端中pop server添localhost:110就可以连接mail中pop后台监听进程了。

  另有两个有用的选项:-f 将ssh引向后台  -N不在远程终端上远行命令(只是用于转发) -g 作为私有网络的NAT网关。

  如果让ssh充当socks 4代理可以运行下面的命令:

[root@supersun.biz ~]#ssh -Dlocalhost:11 mail
Last login: Wed Oct 17 16:15:40 2007 from 192.168.1.87
[root@mail root]#
  这样的话可以通过localhost:11的socks 4代理转发所有流量。

  如果你使用的是putty可以参考这篇文章:利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问

两个远程主机间远程拷贝

  我们经常使用scp将本地文件copy到远程主机或从远程主机copy到本地,如果需要两台远程主机之间copy文件的话,我经常用scp两次,后来看书发现scp支持两台远程主机之间的copy,方法如下:

 [root@supersun.biz ~]#scp host1:/root/tcp_deny.txt host2:/root
tcp_deny.txt                                  100%   70   923.7KB/s   00:00    
Connection to host1 closed.

  这里host1和host2都没有询密码,为什么?看前面: openssh中使用公钥验证 使用ssh-agent
 

查看试调信息检测故障

  有时登录过程很慢,不知道发生了什么事,那我们就打开试调信息,看发生了些什么:

[root@supersun.biz ~]#ssh -vv supersun
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to supersun [192.168.11.127] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1

快速上传公钥

  使用以前我写的一个Perl脚本:写好脚本用于上传公钥

   好了,我就知道这些了,想了解更多自己看书去,推荐<SSH权威指南><LINUX SERVER HACKS>

暂无引用通告

发送引用通告网址: http://supersun.info/mt/mt-tb.cgi/793
如果您想引用这篇日记到您的Blog,请复制上面的链接,放置到您发表文章时的相应界面中。

评论(2)

原来还可以这么用。

有时间看看,书中介绍的比较详细,呵呵!

发表评论

最新资源

  • IMG_1437.JPG
  • line.png
  • bar.png
  • perl_calander.jpg

关于此日记

此日记由 supersun 发表于 2007年10月18日 14:33

此Blog上的上一篇日记文件服务器:vsftpd中用ssl加密ftp会话

此Blog上的下一篇日记阿联酋迪拜布吉大楼

首页归档页可以看到最新的日记和所有日记。