在SSH隧道中指定与正在使用的主机不同的主机的方法

在SSH隧道中指定与正在使用的主机不同的主机的方法,ssh,tunnel,amazon-elastic-beanstalk,beanstalk-svn,Ssh,Tunnel,Amazon Elastic Beanstalk,Beanstalk Svn,我正在尝试设置一个SSH隧道来访问Beanstalk(以绕过讨厌的代理服务器) 我可以做到这一点,但有一点需要注意:我必须将主机文件中的Beanstalk主机URL(username.svn.beanstalkapp.com)映射到127.0.0.1(并在设置隧道时使用ip代替域) 原因(我想)是我正在使用本地SSH实例(在Snow Leopard上)创建隧道,如果我在与Beanstalk交谈时使用localhost或127.0.0.1,它会拒绝授权凭据。我认为这是因为Beanstalk使用请求

我正在尝试设置一个SSH隧道来访问Beanstalk(以绕过讨厌的代理服务器)

我可以做到这一点,但有一点需要注意:我必须将主机文件中的Beanstalk主机URL(username.svn.beanstalkapp.com)映射到127.0.0.1(并在设置隧道时使用ip代替域)

原因(我想)是我正在使用本地SSH实例(在Snow Leopard上)创建隧道,如果我在与Beanstalk交谈时使用localhost或127.0.0.1,它会拒绝授权凭据。我认为这是因为Beanstalk使用请求中指定的主机名来确定用户名/密码组合应该检查哪个帐户。如果使用localhost,我认为请求中缺少这些信息(以Beanstalk要求的某种方式)

现在我挖掘username.svn.beanstalkapp.com的IP,在我的主机文件中将username.svn.beanstalkapp.com映射到127.0.0.1,然后对于隧道,我使用以下命令:

ssh -L 8080:ip:443 -p 22 -l tom -N 127.0.0.1
我可以告诉Subversion回购协议。位于:

https://username.svn.beanstalkapp.com:8080/repo-name
这使用我的隧道,用户名和密码被接受


因此,我的问题是,在设置SSH隧道时是否有一个选项,这意味着我不必使用我的主机文件解决方案?

我会在主机文件中添加一个条目,将127.0.0.1映射到您需要的主机名,然后使用主机名连接到您的隧道

更新
hosts文件是您的最佳选择

我会在主机文件中添加一个条目,将127.0.0.1映射到所需的主机名,然后使用该主机名连接到您的隧道

更新
hosts文件是您的最佳选择

我使用的是雪豹(MacOS10.6.3)。我现在已经这样做了,以使其正常工作,但我希望看到是否有人有新的方法将主机名指定为SSH的参数,以避免将域映射到主机文件中的127.0.0.1。我使用的是Snow Leopard(Mac OS 10.6.3)。目前我已经在做这项工作,以使其发挥作用,但我希望看到是否有人找到了一种新方法,可以将主机名指定为SSH的参数,以避免将域映射到主机文件中的127.0.0.1。根据您的研究,Beanstalk确实似乎使用主机头来路由和验证您的请求,你可能不走运。您的客户端需要以某种方式提供主机头,这属于HTTP协议。注入它肯定超出了ssh的范围(即,有一个参数来指定它)。不过,主机解决方案有什么问题?我的时间已经很长了,但我不介意。澄清一下:这是Beanstalk的Subversion应用程序(beanstalkapp.com/),而不是Beanstalk的工作队列(github.com/kr/beanstalkd)。根据你的研究,Beanstalk确实似乎使用主机头来路由和验证你的请求,你可能运气不好。您的客户端需要以某种方式提供主机头,这属于HTTP协议。注入它肯定超出了ssh的范围(即,有一个参数来指定它)。不过,主机解决方案有什么问题?我的时间已经很长了,但我不介意。澄清一下:这是Beanstalk的Subversion应用程序(beanstalkapp.com/),而不是Beanstalk的工作队列(github.com/kr/beanstalkd)。