Как связать svn checkout через ssh? [closed]

Допустим, у меня есть хост 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

но это кажется длинным и запутанным, как мне это сделать? это одной командой?

-2
задан 10 June 2014 в 14:29
1 ответ

Это можно упростить, используя ssh-туннелирование (и / или ProxyCommands)

. Он находится в .ssh / config . Если у вас нет окон без понятия.

  • определите свой бастионный хозяин Хост my_work_ssh Имя хоста some.hostname.com Имя пользователя IdentityFile ~ / .ssh / id_rsa_work_ssh

  • Определите свой svn

Хост my_work_svn Имя хоста 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_ssh
    • сеанс nc будет открыт для my_work_svn
    • все сообщения будут перенаправлены через этот сеанс nc

Конечным эффектом является то, что вы используете промежуточный хост прыгать по FW. Это работает как для ssh, так и для scp (а svn + ssh - это просто команды ssh и svn внутри него).

Обратите внимание:

  • Настройка открытых ключей предпочтительна и быстрее
  • ProxyCommand иногда придирчива
  • AgentForwarding должен быть включенным на my_work_ssh компьютере
2
ответ дан 5 December 2019 в 21:18

Теги

Похожие вопросы