假设我在一个专用网络上有一个svn主机,我们称之为my_work_svn。我不能从外部访问它,但是我可以从一台我们称之为my_work_ssh的机器上访问它(假设我是从一台名为my_home的计算机中工作)。
现在,如果我想签出存储库,我可以这样做:
ssh my_work_ssh
svn co my_work_svn/master my_checked_out_repo
# CTRL+D to quit ssh session from my_work_ssh
scp my_work_ssh:my_checked_out_repo my_local_repo但是这看起来又长又复杂,我怎么用一个命令来完成这个任务呢?
发布于 2014-06-10 11:52:44
这可以通过使用ssh隧道(和ProxyCommands)来简化。
它住在.ssh/config。如果你没有窗户,不知道。
Host my_work_ssh Hostname some.hostname.com User usename IdentityFile ~/.ssh/id_rsa_work_sshHost my_work_svn HostName svn.internal.domain IdentityFile ~/.ssh/root/id_rsa_work_ssh ProxyCommand ssh my_work_ssh exec nc %h %p 2>/dev/null
my_work_ssh和my_work_svn,并将known_hosts条目复制到桌面上。ssh my_work_svn,并将发生以下情况:my_work_svn打开nc会话。最终的效果是,您正在使用中间主机跳过FW。这既适用于ssh,也适用于scp ( svn+ssh只是其中的ssh和svn命令)。
请注意:
my_work_sshhttps://serverfault.com/questions/604045
复制相似问题