質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • Linux

    3776questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2708questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • SVN

    89questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

  • Subversion

    50questions

    Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。

SVNでリポジトリにアクセスできない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,405

rmrmnrm

score 41

サーバーをメンテし再起動等やっていたら同サーバーに乗っているSVNにエラーが発生。
このサーバーで管理していたSVNが全滅しました。
コミット、アップデートができません。
また、svn://~にもアクセスできない状態です。

 SVNエラーメッセージ

# svn list svn://xxx
svn: E210005: Unable to connect to a repository at URL 'svn://xxx'
svn: E210005: No repository found in 'svn://xxx'

 試したこと

svnserveは起動しています。
Windowsファイアウォールを無効にしましたが変化はありませんでした。
SVNで管理しているファイルは問題なく表示できているため、リポジトリのアクセスだけができない状態です。

SSH接続等はできますので、コマンド等確認方法を教えていただけますと幸いです。
よろしくお願いします。

また、エラー内容は異なりますが以下のURLを参考に、
http://kazumeat.hatenablog.com/entry/20120130/1327887955

svnadmin recover /var/svn/repos/xxx
chown -R apache:apache /var/svn/repos/xxx


としましたが改善しませんでした。

 追記1

# svn list file:///var/svn/repos/xxx


で直下のファイルを確認することはできました。

追記2

# svn list svn://xxx/var/svn/repos


1.127.0.0.1 (=localhost)の場合

svn: E210005: Unable to connect to a repository at URL 'svn://127.0.0.1/var/svn/repos/xxx'
svn: E210005: No repository found in 'svn://127.0.0.1/var/svn/repos/xxx'


2.サーバーの実IPアドレスの場合

# svn list svn://IPアドレス/var/svn/repos/xxx
svn: E210005: Unable to connect to a repository at URL 'svn://IPアドレス/var/svn/repos/xxx'
svn: E210005: No repository found in 'svn://IPアドレス/var/svn/repos/xxx'


3.サーバーのノード名の場合

# svn list svn://サーバ名/var/svn/repos/xxx
svn: E210005: Unable to connect to a repository at URL 'svn://サーバ名/var/svn/repos/xxx'
svn: E210005: No repository found in 'svn://サーバ名/var/svn/repos/xxx'

 追記3

svn+ssh://で接続してみましたが以下の様になりました。
yesで進んだところ、毎回パスワードが求められた後に内容が確認できるようになりました。

# svn list svn+ssh://IPアドレス/var/svn/repos/xxx
The authenticity of host 'IPアドレス' can't be established.
ECDSA key fingerprint is 03:2b:2d:b5:ac:d9:71:64:f8:9b:4c:c0:1e:0f:f5:71.
Are you sure you want to continue connecting (yes/no)?


しかし実際使用していたURL(svn://IPアドレス/xxx)では追記2と同様のエラーでした。

追記4

svn+ssh://IPアドレス/xxxをブラウザからアクセスした結果、複数回ログインを求められた後以下のエラーが表示されました。
Unable to connect to a repository at URL 'svn+ssh://IPアドレス/xxx'
No repository found in 'svn+ssh://IPアドレス/xxx'

svn+ssh://IPアドレス/var/svn/repos/xxxでアクセスした結果、3回ログインを求められた後リポジトリブラウザのURL欄にURLが挿入され、その後3回?程度ログインを求められた後ファイルが表示されましたため、アクセスが可能のようです。
しかし階層を移動するとまた複数回ログインを求められ、拒否したら以下のエラーが表示されました。
Unable to connect to a repository at URL 'svn+ssh://~'
To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnnels]section of your Subversion configration file.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

リポジトリにアクセスできないのであれば、焦ってしまうのも無理からぬ事ですが、問題をきちんと切り分けないうちにいろいろと変更を加えてしまうと取り返しが付かなくなってしまうので、まずは落ち着いてください!

SSH接続可能なのであれば、まずはサーバーへSSHでログインして頂いて、下記コマンドを実行してみてください。

svn list file:///var/svn/repos 

 

これでリポジトリルート直下の資産一覧が取得できれば、少なくともSubversionのリポジトリ自体は生きています。

結果によって対応法方が違ってきますので、まずはご確認ください。

《追記①》
svnserve自体は起動しているとの事でしたが、SSHでサーバーへログインした状態で下記コマンドを実行するとどうですか?

svn list svn://xxx/var/svn/repos


ただしxxxはサーバーのノード名もしくはIPアドレスを意味しています。

  1. 127.0.0.1 (=localhost)の場合
  2. サーバーの実IPアドレスの場合
  3. サーバーのノード名の場合
    で違いがありますか?

《追記②》
サーバーにSSHがインストールされているところをみると、元々「SSH経由」でアクセスされていたのではありませんか??
つまり svn://~ ではなくて svn+ssh://~ だとつながりませんか?

《追記③》
追記3の内容からするとSubversionには問題ないようですね。
毎回パスワードを聞かれるのはSSHエージェントを起動していないからであって正常な結果です。

ところで、実際に使用していたURL(svn://~)ではつながらないというのは、(以前はどうだったか分かりませんが)現在はSSH経由でないとつながらないからです。

svn+ssh://IPアドレス/~ ではつながるのですよね?
サーバー外、例えばPCからもつながりますか?

《結論》
これまでのやりとりから(一部推測も混ざりますが)、おそらくこういうことだと思います。
従来はSSH接続によらず svn://〜 でアクセスしていたが、サーバーのメンテナンス/再起動によってSSH接続する設定になってしまったために、従来のURLではアクセスできなくなってしまった。

しかし、今時、暗号化セずにサーバーへアクセスするのはよろしくないので、SSH接続方式(svn+ssh://〜)でアクセスするのが良いです。

階層を移動する度にパスワード入力を求められるのは、パスワード認証方式になっているからです。
「SSH鍵認証」方式に変更し、SSHエージェントを常駐させてパスフレーズの入力を毎回求められないようにすることを強くおすすめいたします。

ちなみに、ご使用のPCのOSはWindowsでしょうか?
そうであれば、Putty というSSHクライアントソフトをインストールし、Pageant というエージェントソフトを利用されると良いと思います。

この場で詳細をすべてご説明するのは困難なので、参考情報をご連携して終わります。
公開鍵認証によるSSH接続 - PuTTYの使い方

以上、ご参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/13 14:36

    回答ありがとうございます!
    そうですよね、下手にいじってはいけないですよね…

    # svn list file:///var/svn/repos/xxx
    で直下のファイルを確認することができました。

    キャンセル

  • 2018/04/13 14:51

    file://~
    というのはsvnserveも何も介さずにローカルのリポジトリへ直接アクセスするためのプロトコルです。
    想定通りにアクセスできたなら、SVN自体の問題では無いですね。

    続きは解答欄に追記します。

    キャンセル

  • 2018/04/13 15:24

    追記ありがとうございます。コマンド実行した結果を本文に追記しました。
    どれも内容に変わりはありませんでした。
    ご確認お願いします。

    キャンセル

  • 2018/04/13 15:42

    追記②ありがとうございます。
    本文に実行結果を追記しました。
    少なくとも昨日まではsvn://~で運用していました。

    キャンセル

  • 2018/04/13 16:20 編集

    ----------
    The authenticity of host 'IPアドレス' can't be established.
    ECDSA key fingerprint is 03:2b:2d:b5:ac:d9:71:64:f8:9b:4c:c0:1e:0f:f5:71.
    Are you sure you want to continue connecting (yes/no)?
    ----------
    と聞かれるのは、現在のログインしているユーザーが、対象サーバーへ初めてSSH接続するか、サーバーメンテナンスに伴いサーバー側の公開鍵が変わったからなので問題ありません。
    一度yesと回答すると、${HOME}/.ssh/known_hosts
    に対象サーバーの公開鍵のフィンガープリントが記録され、次回からは「なりすまし」を検知できるようになります。
    もし気になるなら、そのサーバーの /etc/ssh 配下にある「ECDSA」公開鍵のフィンガープリントが「03:2b:2d:b5:ac:d9:71:64:f8:9b:4c:c0:1e:0f:f5:71」かを確認してみてください。

    キャンセル

  • 2018/04/13 16:28

    問題ないということなので実行しました。
    都度パスワードが求められ、ファイルが確認できるようになりました。

    キャンセル

  • 2018/04/16 09:56

    お返事が遅くなり申し訳ありません。
    丁寧に対応して頂き本当に助かりました。ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3776questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2708questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • SVN

    89questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

  • Subversion

    50questions

    Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。