在linux下本来是一件很容易的事情,到win7下做的时候就困难重重。
首先在Amazon上开一台机器。在action里面选择connect,就会得到如下的登陆指令:
ssh -i key.pem ec2-user@xxxxxxx.compute-1.amazonaws.com
这里使用的是Amazon上面产生的key pair来做ssh验证的。当我把同样的文件放到win7上,再执行这条命令的时候(在此之前,要先安装openSSH),就报错说key.pem的权限不对。这也是意料之内的,Amazon已经告诉我了,我应该把key.pem文件的权限改到400。可是在win下面怎么做到把文件权限改成400?
右键点击文件,选择属性,打开安全,然后看到一大堆的不同角色的权限(读,写,执行)。就在上面改,但是不知道400应该对应怎样的组合,改了半天还是报错说错误的文件权限。放弃。。
然后想了想,又装了Cygwin。可以华丽丽的使用chmod改权限了。改完,再运行命令连接,还是说文件权限不对!
那好,不用key.pem,用publickey怎样?又折腾了半天,发现和使用key.pem有同样的问题,都是依赖一个本地文件,都要解决权限的问题。
最后想到一个办法,干脆不用文件验证了,使用密码好了呗。
- 首先,给Amazon机器上的用户上一个密码。passwd ec2-user
- 然后修改ssh的配置文件。
- sudo vi /etc/ssh/sshd_config
- 把PasswordAuthentication这项改成yes
- 重启sshd。sudo /etc/init.d/sshd restart
- 大功告成。使用ssh -D [port] ec2-user@xxxxxxx.compute-1.amazonaws.com就可以登陆那台机器了
其实做这个的本意是用来proxy。做完上面那些之后,就可以打开firefox,使用socks5代理。填入localhost和上面命令指定的端口号。还有很关键的一点是要允许firefox使用远端dns。操作方法是,在firefox地址栏输入about:config,然后搜索dns,把那个remote dns的项改成true就可以了。
然后就可以欣赏墙外的世界了:)