web-dev-qa-db-ja.com

カスタムポートを介したsvn + sshプロトコルを使用するSVNサーバー

Ubuntu 12.04.2 LTSを仮想マシンとして実行しています。前面にもファイアウォールが有効になっているvShieldがあり、いくつかのNAT変更があります。VPS構成には他のマシンもありますが、そうではありません。重要なことです。重要なのは、UbuntuのSSHポートを22から765に変更し、vShieldのポートを424から765に変換したことです。ファイアウォールにはSSH(およびSVN)に必要なすべての権限があります。

だから私はこのようにSSH接続を行います

kopparberg:Webpage marek$ ssh marko@91.***.***.69 -p 424

そしてそれは魅力のように機能します。

問題はどこにありますか?このガイドに従ってUbuntuでSVNサーバーをセットアップしようとしています http://odyniec.net/articles/ubuntu-Subversion-server/

SVNプロトコルを介してリポジトリ「Webページ」をチェックアウトする場合

kopparberg:Webpage marek$ svn checkout svn://91.***.***.69/Webpage --username svnuser

正常に機能します。

私が本当にやりたいのは、svn + sshプロトコルのチェックアウトです。私は成功せずに多くの異なる方法を試しました。

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69:424/usr/local/svn/repos/Webpage --username svnuser
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: Network connection closed unexpectedly

別の試み...

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage -p 424 --username svnuser
svn: invalid option character: p
Type 'svn help' for usage.

また、ssh = ssh -p 424ファイルを/user/marek/.Subversion/configファイルに追加します。

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage --username svnuser
marek@91.***.***.69's password
Permission denied, please try again.: 

私のパスワードはどれも正しくありません。

設定ファイルを変更せずに、カスタムポートを介してsvn + sshプロトコルでチェックアウトすることも可能ですか?


編集:もちろん、SVNユーザーではなくSSHユーザーを使用する必要があることがわかりました。しかし、私はそれを完全に間違った方法で使用していました。 --usernameサブコマンドの代わりに、ユーザー名をIPアドレスの前に置く必要があります。

kopparberg:Webpage marek$ svn checkout svn+ssh://marko@91.***.***.69/usr/local/svn/repos/Webpage

これははるかに良く見え、それは機能します!私がまだ探しているのは、チェックアウト前に構成ファイルを編集する必要がないソリューションです。つまり、SSHポートをその場で変更したいと思います。

2
Marek

ここでのパーティーには少し遅れていると思いますが、ここでまったく同じ問題が発生し、解決しました。

まず、新しいデフォルトのSSHポートを決定します。これは一般的にSSHに影響します(つまり、コマンドラインやPuTTYなどを使用してSSH経由でサーバーに接続する場合。スコープを超えている複数のSSHDサーバーインスタンスを呼び出す場合を除いて、SVNのためだけにポートを変更することはできません。元の質問の)。

したがって、次のことを前提としています。

  • ポート123456を介してすべてを実行する必要があります
  • サーバーのIPアドレスは192.168.1.100です
  • ルーター/ファイアウォールがポート123456を開いています
  • ルーター/ファイアウォールには、ホスト192.168.1.100の内部ポート123456への外部ポート123456ルーティングのポート転送が設定されています。

クライアント側:

とにかく、まず、クライアントマシンで<〜/ .Subversion/config>を変更し、[tunnels]というタイトルの行の下に次の行を入力します。

ssh = ssh -p 123456

サーバ側:

まず、新しいデフォルトのSSHポートを設定する必要があります。 SVNサーバーで、SVNサーバー構成ファイルを編集します(Ubuntuの場合)(「SSH」の後の「d」に注意してください):Sudo vi/etc/ssh/sshd_config

「Port」で始まる行(デフォルトでは「Port22」と表示されます)を探し、「22」を「123456」に変更します。ファイルを保存して閉じます。 SSHDサーバーを再起動します。Sudorestartssh

SVNセットアップが上記のように機能していると仮定すると、設定は完了です。単一ポート転送パススルールールとしてポートをそのまま維持するのではなく、ポートを変換することを主張する場合は、サーバー側で使用されるSSHポートをで変更するだけで設定できます。 LAN外部のクライアントから上記のセットアップを次の方法で正常にテストしました。

svn --username megaman ls svn+ssh://[email protected]/usr/local/svn/repos/private

お役に立てれば!

1
Cloud