チェックアウトしようとすると:
svn checkout svn+ssh://serveradmin%foo@foo.com/home/87292/data/svn/repository/trunk .
この(役に立たない)エラーが発生します:
svn:ネットワーク接続が予期せず閉じられました
何が起こっていますか?
これは、認証の失敗が原因で発生する可能性があります。アクセスしようとしているサイトと一致しない資格情報がキャッシュされている可能性があります。SSHキーをサイトに登録する必要がある場合があります。
以下のnotalbertが示唆しているように、SVN_SSHフラグを使用して、冗長モードで詳細なエラーを取得します
export SVN_SSH="ssh -v "
stderr
、にこのような出力が表示される場合があります
Add correct host key in /home/jcrawford/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/jcrawford/.ssh/known_hosts:4
remove with: ssh-keygen -f "/home/jcrawford/.ssh/known_hosts" -R 192.168.0.107
ECDSA host key for 192.168.0.107 has changed and you have requested strict checking.
Host key verification failed.
svnサーバーのIPアドレス(私の場合は192.168.1.107)に属する行エントリをファイルから削除します~/.ssh/known_hosts
わかった。これが私がこれを修正した方法です(Mac OS Xで、しかし修正はどのクライアントでも機能するはずです)
この特定の問題は、SSHサーバーに非標準のポート(例として12001など)を使用している場合に発生します。
次のようなコマンドラインでポートアドレスを指定すると、SVNクライアントで構文エラーが発生するようです。
svn list svn+ssh://username@domainname.com:12001/home/username/svn/myproject
したがって、これを修正するには、次のようにSSHのクライアント側構成ファイルを作成する必要があります。
cd ~
cd .ssh
vi config (create a config file like the one that follows)
:w
:q
〜/ .ssh /configにある構成ファイル:
Host domain.com
User username
Port 12001
次に、次のようにポートなしでsvn+sshコマンドを発行します。
svn list svn+ssh://username@domain.com/home/username/svn/myproject
それでおしまい!
お役に立てば幸いです。リック
ジョエルとアンディは正しいと思います。
ssh冗長フラグを使用して、この種の問題を理解するのに役立てることができます。
export SVN_SSH="ssh -v "
svn checkout svn+ssh://serveradmin%foo/blah blah blah
これと同じエラーが発生しましたが、リビジョンをコミットしたためです。.ssh / known_hostsをクリアすると、SSHキーが古くなったために問題が修正されました。
私はローカルネットワークsvnに接続していましたが、これはある時点から発生しました(実際には定期的に発生します)。
私がサーフィンで見つけたすべての参考文献は、SSHに関連する何かに言及しています。SSHもどういうわけか私の問題の根源かもしれませんが、svnserveプロセスのいくつかを強制終了することで問題を克服することができました。
私は自分のサーバーの使用法を知っているのでこれを行うことができますが、より多くの同意を得たサーバーでこれを行うことの関連性はわかりません。
Puttyを使用している場合は、ログインクレデンシャルが保存されるため、チェックアウトしようとすると、tortoiseで次のエラーが発生する可能性があります。接続が予期せず閉じられました。これが発生した場合は、パテを開き、デフォルト設定をクリックして、ホスト名がロードされるようにします。ホスト名をクリアして保存します。これは私のために働いた...
私が遭遇したこの「svn:ネットワーク接続が予期せず閉じられました」エラーが発生するもう1つの理由は、/ varがいっぱいで、svnがディスクに何も書き込めない原因でした。したがって、上記の手順に進む前に、まずディスク容量(du -m)を確認してください。
svnURLに偽のコロンが含まれていないことを確認してください
それはすべきではありません:
user@host.com:/path/to/repo
^
spurious colon should be removed
しかし、次のようにする必要があります。
user@host.com/path/to/repo
私の場合、svn + sshを使用しているときに、gforgeユーザーがホームディレクトリを持っていなかったことが原因でエラーが発生しました。それらを手動で追加すると、問題は解決しました。
ファイアウォールの設定を確認してください。サーバーにConfigServerSecurity&Firewall(CSF)をインストールして、ssh + svnポート2222をブロックしました。ポートを許可し、更新を実行できました。
Linuxサーバーでsshを設定した後も、この問題が発生しました。私にとっての問題は、puttyGenを使用してキーを作成したことです。公開鍵ファイルは、最初に.ppkファイル形式のputtyGenで変換する必要がありました。その後、すべてが魅力のように機能しました。
こんにちは私はOSXYosemiteで同じ問題に遭遇します。私はこの答えをすべて読み、@notalbertコメントが解決への道です。OSXはsvn+sshスキームを処理できないようですので、追加します
export SVN_SSH="ssh "
/Users/username/.bashrcへの私の解決策です。
ありがとう。
その他の考えられる原因は、Subversionが実際にサーバーにインストールされていないことです(たとえば、リポジトリが新しいサーバーに移動された)。
.bashrc
キーを参照するようにすでに設定しているが、コマンドの実行にSVN_SSH
使用している場合は、を使用していないため、このエラーが発生する可能性があります。sudo
svn
SVN_SSH
sudo
作成する権限がない新しいディレクトリにチェックアウトするために使用していました。適切な方法はsudo mkdir whatever
、に書き込むことができるように正しい権限を設定することです。
sshがデフォルトのポート22を使用して接続しようとすると、上記のエラーが発生し続けました。ホストに正しいポートを指定すると、問題が解決しました。
私の関連する2セントを古いスレッドに追加するだけです:
saslを使用するようにsvnバージョン1.10.4(r1850624)をセットアップしました
Windows(カメ)とMacOSを使用してリポジトリをチェックアウトできましたが、別のDebian CLI v10マシンからチェックアウトしようとすると、次の2つのエラーが発生しました。
svn:E170013:URL'svn:// myServer/myRepo'のリポジトリに接続できません
svn:E210007:認証メカニズムをネゴシエートできません
注:/myRepo/conf/svnserve.confで「use-sasl =true」をコメントアウトして「anon-access=read」を作成すると、Debianサーバーでチェックアウトできます(つまり、私はサーバーですチェックアウトに使用しようとすると、sasl authの問題が発生しますが、「svnserve --version」は両方のサーバーで「CyrusSASL認証が利用可能です。」と表示され、両方とも「sudo testsaslauthd -u myUser -p myP@5swd」とtcpを正常に実行できます。 3690は2つのサーバー間で開いていました)
--log-file /var/log/svn.logを指定してsvnserveを実行しているので、そこに(OPの問題)が表示されていました。
ipAddrOfServerAttemptingCheckout --- ERR--0210002ネットワーク接続が予期せず閉じられました
解決策(私にとって):チェックアウトを試みるそのサーバーに、libsasl2-modulesをインストールしました(Windows / MacOSがチェックアウトできるようにするためにsasl2-binをインストールするだけで済みました):
sudo apt install libsasl2-modules
これで、どこからでもチェックアウトできるようになりました(実際、「svnsync init」を実行できるようになりました。これは、認証の問題があることに気付いたときです)。