SSH那些事儿

标签: ssh | 发表时间:2011-10-01 13:09 | 作者:第六天魔王 Lycan Mao..
出处:http://lycanmao.blogspot.com/

SSH那些事儿

September 30, 2011 Fri.

不知道读者中知道SSH有多少,我想除了pro们,剩下的都是用VPS。一般来说,用SSH就是用ssh –D[1]这个动态转发接口,至于做什么用也就不明说了,大家都懂。问题是,SSH只能用来做这些?当然不是。熟悉hg的都知道可以从“ssh://”地址克隆repository[2],那剩下的呢?

故事的起因是office desktopdepartment firewall之内,用laptopremote desktopRDP)连接office需要先用PuTTY之类的神器连接department firewallOpenBSD的哦),然后再用RDP连接desktop[3]。可是分管防火墙的神一直没有给我打开RDP3389端口,所以哥一直挣扎不能用。由于之前用过VPS,所以自然想到在desktop弄一个sshd,然后laptop命令行连接。这个很成功,port 22本来就不入firewall法眼,所以逍遥无比,还特地学习了MicrosoftPowerShell[4]打算命令行控制。

随后发现自己太simple了,这么点就满足了?再加上当时用的FreeSSHd[5]home目录我改不了,所以就放弃了,换上了WinSSHd[6]。这个的配置友好许多,不过我仔细研究了其license,发现其free授权对departmentdesktop非常不友好,很可能算是侵权,所以只敢用standard授权,最后嫌贵在trial内就放弃了[7]。在这个无助的时候知道了可以用cygwinsshd[8],不过配置有点麻烦,我又懒,差点一度放弃回到FreeSSHd。但已经打算用开源授权的不想和商业授权扯上关系,所以继续苦苦寻找,终于找到了CopSSH[9] [10]。这个虽然bug不少,但是很好的封装了cygwinsshd,并且界面化配置,最终还是确定用这个。

故事还没结束,用了一段时间发现有很多crackers扫描port 22,尝试枚举rootgit这些常用账号,一怒之下换用了key pair的验证方式。在desktop上用CopSSH生成了一对keys,然后尝试用PuTTY[11]连接,发现PuTTY不认OpenSSH格式的key。不过PuTTY有个key generator,那个兼职可以读取OpenSSHkey转换成PuTTY的格式(大哥,你为啥不直接支持?又不是代码写不出来)。OK!取消desktoppassword验证方式,走人回家。

到了家发现Tunnelier[12]不支持OpenSSH,更不支持PuTTY的可以!!!Masaka!上网找,Tunnelier的人说绝对支持[13],那么就是我发疯了?还好key遵守了The Art of Unix Programming采用文本的模式,可以直接打开读取。乖乖,Tunnelier生成的OpenSSH格式的keyCopSSH里面的OpenSSH生成的最大区别是对Passphrase加密方式的不同,前者用的是DES,后者是AES,而Tunnelier不支持AES(从网上得到验证[14])。正在觉得自己自作孽不可活的时候(无法访问desktop了,晚上程序没地方跑了),发现PuTTY大人的key generator导出的OpenSSH格式的keyDES加密的,souga,搞定~

刚才说的是基本功,那么说说用SSH能做什么。首先动态转发(dynamic forwarding)一如既往的支持着我,我可以在家访问Book24×7(需要university IP)。另一个功能就是打印转发。如果你在用笔记本,要打印,拷到desktop上打印(网络打印机,只能用特定的IP[15]?爆弱了。这里要用到本地转发(local forwarding)。具体的理论基础可以去看IBM的一篇文章[16],关于网络打印协议可以看微软的MSDN或者TechNet。大致说来,就是设置打印机的时候,IPlocalhost,端口写打印机端口(不是网络port,这里要查desktop里面的port设置);然后动态转发设置为本地的port 9100转发到打印机的IP9100(我感觉这里有点问题,和描述的不同,不过貌似用的是SNMP协议,应该无所谓)[15] [17]

另一个神奇的功能是remote desktopport 22转发到远程机器,这样就不必命令行控制了!!!这一招是从Tunnelier[12]学的,用Process Explorer[18]查看Tunnelier的进程就可以发现其命令行格式。大致来说就是随便弄个rdp配置文件(建议打开字体平滑),然后用mstsc [any name].rdp /v localhost:[port]就可以穿过去了。所以以后不要Tunnelier也可以的(继续担心其license限制,不过我目前是个人laptop,没有violation[12])。

最后讲一招。一般来说在home目录下放的文件是可以在“ssh://”地址中直接访问的,我把代码用mklink[19]或者junction[20]XP下用)做了个symbolhome目录。不过后来不知怎么回事,plink连不上了,所以还是换成了hgweb[21]的方式。也就是写一个配置文件,把所有的代码都通过http://localhost:8000/*访问(desktop端),用Windows防火墙限制这个端口不让外部访问。在laptop上开本地转发,在本地访问http://localhost:8004都转发到http://localhost:8000上,那么代码库就建成了。

后记:本文的reference都是来自于网络的,我老板绝对是很反对随便引用Wikipedia的,也有人因为PPT引用别人的成果没著名被开除的,更有因为在开学典礼发言用了别人的话被解雇的。所以以防万一,后文的reference格式如下:Wikipedia的带上版本,一般的页面也加上Google cache的地址。话说加引用加的我要死了。

Reference

[1] Original: http://www.openssh.org/manual.html; Cached: http://webcache.googleusercontent.com/search?q=cache:FZq9Z8gVx-IJ:www.openssh.org/manual.html+&cd=3&hl=en&ct=clnk

[2] Original: http:// mercurial.selenic.com/wiki/FAQ; Cached: http://webcache.googleusercontent.com/search?q=cache:Noccn1OHm1EJ:mercurial.selenic.com/wiki/FAQ+&cd=2&hl=en&ct=clnk

[3] Original: http://helpdesk.civil.ualberta.ca/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=11&nav=0,6; Cached: Not Found

[4] Original: http://technet.microsoft.com/en-us/library/bb978526.aspx; Cached: http://webcache.googleusercontent.com/search?q=cache:-2q3vuxE3pYJ:technet.microsoft.com/en-us/library/bb978526.aspx+&cd=4&hl=en&ct=clnk

[5] Original: http://www.freesshd.com/; Cached: http://webcache.googleusercontent.com/search?q=cache:dFGngCC4BGcJ:www.freesshd.com/+&cd=1&hl=en&ct=clnk

[6] Original: http://www.bitvise.com/winsshd; Cached: http://webcache.googleusercontent.com/search?q=cache:pNHBstbX7p0J:www.bitvise.com/winsshd+&cd=1&hl=en&ct=clnk

[7] Original: http://www.bitvise.com/winsshd-license; Cached: http://webcache.googleusercontent.com/search?q=cache:UlrmeAL-D6oJ:www.bitvise.com/winsshd-license+&cd=1&hl=en&ct=clnk

[8] Original: http://www.petri.co.il/setup-ssh-server-vista.htm; Cached: http://webcache.googleusercontent.com/search?q=cache:y4AUsYfmS78J:www.petri.co.il/setup-ssh-server-vista.htm+&cd=5&hl=en&ct=clnk

[9] Original: http://buffered.io/2009/05/16/setting-up-trac-mercurial-and-ssh-on-windows/; Cached: http://webcache.googleusercontent.com/search?q=cache:RDkYBorL_pMJ:buffered.io/2009/05/16/setting-up-trac-mercurial-and-ssh-on-windows/+&cd=1&hl=en&ct=clnk

[10] Original: http://www.itefix.no/i2/copssh; Cached: http://webcache.googleusercontent.com/search?q=cache:J7_-S3QjbLwJ:www.itefix.no/i2/copssh+&cd=1&hl=en&ct=clnk

[11] Original: http://www.chiark.greenend.org.uk/~sgtatham/putty/; Cached: http://webcache.googleusercontent.com/search?q=cache:e21SJh5st8AJ:www.chiark.greenend.org.uk/~sgtatham/putty/+&cd=1&hl=en&ct=clnk

[12] Original: http://www.bitvise.com/tunnelier; Cached: http://webcache.googleusercontent.com/search?q=cache:ncGSlQ_h1TwJ:www.bitvise.com/tunnelier+&cd=1&hl=en&ct=clnk

[13] Original: https://fogbugz.bitvise.com/default.asp?Tunnelier.2.1135.11; Cached: http://webcache.googleusercontent.com/search?q=cache:7GwXOKEKDREJ:https://fogbugz.bitvise.com/default.asp%3FTunnelier.2.1135.11+&cd=1&hl=en&ct=clnk

[14] Original: https://fogbugz.bitvise.com/default.asp?Tunnelier.2.16692.9; Cached: http://webcache.googleusercontent.com/search?q=cache:nOvTThM9KuMJ:https://fogbugz.bitvise.com/default.asp%3FTunnelier.2.16692.9+&cd=1&hl=en&ct=clnk

[15] Original: http://pigtail.net/LRP/printsrv/tunnel-how.html; Cached: http://webcache.googleusercontent.com/search?q=cache:2EUmdqJMA80J:pigtail.net/LRP/printsrv/tunnel-how.html+&cd=1&hl=en&ct=clnk

[16] Original: https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/; Cached: http://webcache.googleusercontent.com/search?q=cache:rlXx-9Yp4_MJ:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/+&cd=1&hl=en&ct=clnk

[17] Original: http://technet.microsoft.com/en-us/library/cc728404(WS.10).aspx; Cached: http://webcache.googleusercontent.com/search?q=cache:mppvHxcgz0QJ:technet.microsoft.com/en-us/library/cc728404(v%3Dws.10).aspx+&cd=1&hl=en&ct=clnk

[18] Original: http://technet.microsoft.com/en-us/sysinternals/bb896653; Cached: http://webcache.googleusercontent.com/search?q=cache:KUuT8yKzK9IJ:technet.microsoft.com/en-us/sysinternals/bb896653+&cd=1&hl=en&ct=clnk

[19] Original: http://technet.microsoft.com/en-us/library/cc753194(WS.10).aspx; Cached: http://webcache.googleusercontent.com/search?q=cache:7P9kH0aBZhYJ:technet.microsoft.com/en-us/library/cc753194(v%3Dws.10).aspx+&cd=1&hl=en&ct=clnk

[20] Original: http://technet.microsoft.com/en-us/sysinternals/bb896768; Cached: http://webcache.googleusercontent.com/search?q=cache:5usiX2Zsk0kJ:technet.microsoft.com/en-us/sysinternals/bb896768+&cd=2&hl=en&ct=clnk

[21] Original: http://mercurial.selenic.com/wiki/HgWebDirStepByStep; Cached: http://webcache.googleusercontent.com/search?q=cache:mRPktvAAZYUJ:mercurial.selenic.com/wiki/HgWebDirStepByStep+&cd=2&hl=en&ct=clnk

相关 [ssh] 推荐:

SSH Tunnel扫盲

- Jerry - 老王的技术手册 ( 我的新博客:http://huoding.com )
前些天,由于我不知道如何在Putty里拷贝字符而被朋友们取笑,着实糗了一把. 不过被别人B4的一大好处就是你会知耻而后勇,这阵子通过研读PuTTY 中文教程,估计以后不会再犯同样的错误了,在学习Putty的同时偶然发现自己对SSH Tunnel的了解很匮乏,所以便有了今天这篇笔记. SSH Tunnel有三种,分别是本地Local(ssh -NfL),远程Remote(ssh -NfR),动态Dynamic(ssh -NfD).

SSH那些事儿

- Mao.. - Visual Mao++
不知道读者中知道SSH有多少,我想除了pro们,剩下的都是用VPS. 一般来说,用SSH就是用ssh –D[1]这个动态转发接口,至于做什么用也就不明说了,大家都懂. 熟悉hg的都知道可以从“ssh://”地址克隆repository[2],那剩下的呢. 故事的起因是office desktop在department firewall之内,用laptop的remote desktop(RDP)连接office需要先用PuTTY之类的神器连接department firewall(OpenBSD的哦),然后再用RDP连接desktop[3].

linux配置ssh+rsync

- - CSDN博客推荐文章
sftp    文件共享 类似ftp  ssh  secure file transfer client. scp    文件共享 类似cp. #PermitRootLogin yes    改成no 禁止root直接登录. #Port 22    改变ssh的默认端口号   要打开注释. 登录  ssh  [email protected]  然后输入密码就好了.

注册送 SSH Tunnels 账号

- jason - 细节的力量
来源:http://www.hiwaley.com/2098.html. 赠送 SSH Tunnels 账号,用途请Google “SSH Tunnels“. 长期有效,直到本站倒闭,或者某天墙塌了. SSH的账号和Blog的账号一样,如需修改SSH的密码,直接修改Blog的密码即可. 注册帐号后,需要配置SSH客户端和浏览器,具体方法如下:.

免费VPN & SSH信息

- jason - iGFW
注册即送免费128M流量的PPTP和L2TP,OPENVPN. 注册地址:http://www.jpvpn.net/register. 配置文件下载:http://sharesend.com/gpebc. 以下15组免费帐号,用户名和密码一样. 用户名和密码填写在vegas目录下的Acct.txt文件里.

优秀的Android SSH工具

- 牛牛 - Solidot
Peter Jackson 写道 Secure Shell(SSH)是工作在应用层和传输层之上的网络安全协议,利用128位公钥加密接收和发送的信息. SSH能保证两个主机之间的通信不被中间人拦截. 作为一种安全保护协议,SSH常被用于安全数据通信和远程命令执行. 其它常用用途包括使用SSH文件传输协议或安全复制协议在机器之间建立安全隧道或传输文件.

SSH的登录限制

- - 操作系统 - ITeye博客
从网络来的数据包首先要经过iptables,所以可以在iptables上面加上规则来限制ip的访问. 比如只限制3个外网,1个内网IP连接. 直接在/etc/hosts.deny里面加一行. sshd: ALL EXCEPT xxx.xxx.xxx.xxx(允许的ip或网段). sshd: ALL EXCEPT xxx.xxx.xxx.xxx/255.255.255.0(允许的网段) 就可以了.

DenyHosts防SSH暴力破解

- - 操作系统 - ITeye博客
DenyHosts官方网站为: http://denyhosts.sourceforge.net. 1、首先判断系统安装的sshd是否支持tcp_wrappers(默认都支持). 2、判断默认安装的Python版本. Centos5.5默认已安装了python 2.4.3. 二、已安装Python2.3以上版本的情况.

ssh密钥认证原理

- - 寒江孤影
SSH之所以能够保证安全,原因在于它采用了公钥加密. 整个ssh密码登录过程是这样的:. 1)用户向远程主机发登录请求:ssh user@远程主机. 2)远程主机收到用户的登录请求,把自己的公钥发给用户. 2)用户使用这个公钥,将登录密码加密后,发送回远程主机. 3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录.

【转】建立SSH隧道(SSH端口转发)

- - 膘叔
虽然自己也常用ssh -D,ssh -l之类的操作,但毕竟没有详细的分析这些. 事实上如果你要求不高,完全可以看文档. 或者直接输入ssh也能够看到各个参数的含义. 就转贴一下,毕竟它可以用来看一些国外资料. 原文地址是:http://www.xushulong.com/post/2012-08-04/40032371760.