创建SSH的Socket隧道链接本身其实很简单,在Mac OS的命令行下面只需要一行就可以了:
ssh -D 7777 username@yourhost.com 参看livid的关于SSH/PAC配置的详细说明。
然而每次都需要密码,并且超时断线的时候也需要手工重连,实在是很麻烦的事情,我参考网上的一系列资料拼装了自己的方案,开机自动链接,保存密码输入,断线自动重连。
首先是保存密码输入问题,需要创建密钥,在你的命令行输入: local:~ yourname$ ssh-keygen -t rsa
然后依次回车,输入密码,这个密码和SSH的帐号密码无关。 整个界面看上去类似: local:~ yourname$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/u/kim/.ssh/id_rsa): 【回车】 Enter passphrase (empty for no passphrase): 【第一次密码】 Enter same passphrase again: 【第二次密码】 Your identification has been saved in /u/kim/.ssh/id_rsa. Your public key has been saved in /u/kim/.ssh/id_rsa.pub.
接下来把密钥文件传到你的SSH帐号下: local:~ yourname$ cd ~/.ssh local:~ yourname$ cp id_rsa.pub authorized_keys local:~ yourname$ scp -p ~/.ssh/authorized_keys hrothgar:.ssh/
最后一步会提示你输入SSH帐号的密码,不是你刚才创建密钥的密码。 如果最后一步提示错误,通常是因为远程权限的问题。 你需要用root身份登录到远程机器,为这个SSH帐号创建相关目录,并且设置权限:
在SSH帐号登录的Home目录设置: root# mkdir .ssh root# chown username . root# chrown username .ssh root# chmod go-w . .ssh
然后重新执行刚才最后一步。
如果你在Mac OS的用户名和SSH的帐户名一致(推荐),那么你现在可以直接输入: $ ssh yourhost.com
系统就会自动提示你输入刚才所创建密钥的密码(弹出一个对话框,而不是命令行里的密码提示),这时,请记得输入正确的密码,并且选择在钥匙环里记住该密码了。这以后你重复使用这个命令,应该就可以自动无缝登录而不需要任何提示了。
如果你使用不同的帐户,试试: $ ssh yourname@yourhost.com
如果测试通过,就可以进入最后一步。
OK,最后一步是登录自动连接和断线自动重连,本来也可以用各种命令行实现的,但是我发现了一个更好用的东东:SSH Tunnel Manager,你可以下载到最新的2.0版本。
按照以下步骤设置: 1、把程序拖到你的Application目录,运行; 2、在Dock上右键点击选中“登录时打开”。 3、单击程序图标一次,在主界面点击“Configuration”打开配置; 4、单击“+”号创建一个新的连接设置; 5、随便取一个名字,输入你的SSH主机名(例如:yourhost.com)和用户名; 6、点击Option,选中Auto Connect(自动连接)和Enable Socket Proxy(允许Socket代理),填写一个没有被占用,并且数字大于1500的端口号。
关掉设置按钮,现在你可以看到在SSH Tunnel Manager的主窗口里面有你刚才创建的配置和一个灰色的启动按钮,点击启动。
最后一步,在你的浏览器里面设置Socket代理到127.0.0.1:你的端口号。 我自己通常用Safari作为日常浏览,Firefox则对所有URL通过代理。
参考资料: 《SSH自动登录保存密码指南 Getting started with SSH》 以及上文的中文译稿(非常感谢):《SSH记住密码,自动登录》 SSH Tunnel Manager软件下载 chmod,chown命令详解
转:http://woooh.com/archives/423.html |