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

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

新規登録して質問してみよう
ただいま回答率
85.35%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

SVN

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

Q&A

解決済

2回答

4658閲覧

UbuntuからSVNサーバーに接続するには?

tmakita

総合スコア70

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

SVN

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

0グッド

0クリップ

投稿2021/07/16 04:23

編集2021/07/17 18:14

Newbieの質問ですみません.

普段WindowsのTortoiseSVNでSubversionサーバーにアクセスしてプログラム開発を行っています.普通はWindowsでの作業でまったく問題ないのですが、今回ビルドをUbuntuでも試してみることになり、Ubuntuをクライアントとしてサーバーに接続しなければなりません.

Ubuntu側でやってみたこと

安直ですがTortoiseSVNに似たGUI クライアントがあるということで、RabbitVCS SVNをインストールしてあります.これをインストールすると、TortoiseSVNの時と同様、コンテキストメニューに「RabbitVCS SVN」が現れてくれます.

ただしこれでリポジトリのURLを指定しても、以下のエラーになります.SSHを設定していないのですから、致し方ありません.

Unable to connect a repository at URL '~'
To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.

普段Windows TortoiseSVNでは?

ネットワークの設定に次のようにSSHの設定を入れています.

"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -l tmakita -i "C:\Program Files\TortoiseSVN\key\id_rsa.ppk" -share

ではUbuntuの側でも同じSSH設定が必要なはずです.でもWebの記事はおよそLinuxをSVNサーバー、WindowsをSVNクライアントの前提のお話ばかりで、Linuxをクライアントにした時何をどのように設定すればSVNに接続できるのか初心者にはよくわかりません.

クライアントのUbuntuでどのようなSSHの設定を行えば良いかご教授ください.使用しているUbuntuは20.04.2 LTSです.

以上 よろしくお願いいたします.

追加情報

少しデバッグしてみましたので追記いたします.

UbuntuでPuTTYをインストールしてみる.

当たり前かもしれませんが、puttyを立ち上げてid_rsa.ppkを指定してやれば接続できます.

ssh -vvv tmakita@xxx.yyy.co.jpを試してみる

つながらないんですが、デバッグ情報が出てくれて、以下がわかります.

Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
Remote protocol version 2.0, remote software version OpenSSH_4.3

puttygenでOpenSSHのキーを生成してsshで接続してみる.

puttygenの-Oでprivate-opensshを指定すると、Load key "/home/tmakita/.ssh/id_rsa": Invalid key length で落ちる.

puttygenの-Oでprivate-openssh-newを指定すると、Load key "/home/tmakita/.ssh/id_rsa": invalid format で落ちる.

となります.手掛かりになりますでしょうか??

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -l tmakita -i "C:\Program Files\TortoiseSVN\key\id_rsa.ppk" -share

ここの「C:\Program Files\TortoiseSVN\key\id_rsa.ppk」がsshの秘密鍵だと思いますが、これはPuttyというソフトのフォーマットなので、ubuntuで使用できる秘密鍵に変換する必要があります。

上記のように、Windows上で変換するか、ubuntu上であれば端末上で、

sudo apt install putty-tools

putty-toolsをインストールした後に、

puttygen id_rsa.ppk -O private-openssh -o id_rsa

を実行して変換を行ってください。(「id_rsa」が、ubuntuで使用する秘密鍵のファイル名です)

その後に、

  • 「$HOME/.ssh」に、上記で作成した秘密鍵ファイルを、「id_rsa」という名前でコピーする。
  • 端末上で「ssh-add id_rsa」を実行する。

のいずれかを行ってください。

前者の場合、一度コピーしておけば電源を落としても有効ですが、言い換えればログインしていれば誰でもサーバにアクセスできてしまうので、後者で使用する前に必ず実行するようにする方がセキュリティ的に望ましいです。
(まぁ、その辺りは個人の判断で)


tmakita@Ubuntu-tmakita:~$ ssh tmakita@xxx.yyy.co.jp Unable to negotiate with 999.999.999.999 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

わかんないけど、エラーメッセージでググったら、こんなのが出てきましたよ。
試してみてください。

投稿2021/07/16 14:04

編集2021/07/16 15:42
katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katsuko

2021/07/16 14:34

ちょっと補足しておくと、要は秘密鍵を指定しないでsshコマンドでログインできるようにすればいいので、自分の説明で足りない場合にはその辺りをキーワードに調べてみてください。
tmakita

2021/07/16 14:51

回答ありがとうございました. ホームディレクトリの.sshにid_rsaをコピーしました.(以前Cent OSで試みた記憶があります)リモートはすでにWindowsクライアントで使用しているので、公開鍵はあるはずです. 御指摘の通り「秘密鍵を指定しないでsshコマンドでログインできる」が勘所と、サーバーに接続してみましたが以下のメッセージになってしまいます. tmakita@Ubuntu-tmakita:~$ ssh tmakita@xxx.yyy.co.jp Unable to negotiate with 999.999.999.999 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 原因わかりますでしょうか?
tmakita

2021/07/17 18:13 編集

う~む.探していただいてありがとうございます.どうもリモートがいまいちみたいですね.相当運用しているんで必ずしも最新のものだと受け付けてくれないかも.来週サーバー管理者に聞いてみます.あとご指摘の処置をしたら、なんとかコネクション近くまで行ったようなのですが、以下で落ちてしまいました. tmakita@Ubuntu-tmakita:~$ ssh "tmakita@xxx.yyy.co.jp" The authenticity of host 'xxx.yyy.co.jp (999.99.999.999)' can't be established. RSA key fingerprint is SHA256:Jzuq7YLrJmgE4zIoG8+jGYU5vXwnnkK7Cyl4LvxXrbA. Are you sure you want to continue connecting (yes/no/[fingerprint])? y Please type 'yes', 'no' or the fingerprint: yes Warning: Permanently added 'xxx.yyy.co.jp,999.99.999.999' (RSA) to the list of known hosts. Load key "/home/tmakita/.ssh/id_rsa": Invalid key length tmakita@xxx.yyy.co.jp: Permission denied (publickey,gssapi-with-mic). tmakita@Ubuntu-tmakita:~$ id_rsaのキー長が違っている???Webを見るとキー長が1024bit以下は通らない??ちょっとショックです.どうも根本的に考え直さねばならないみたい.Windowsはなんで行けちゃうのでしょう?
katsuko

2021/07/16 22:01

先にも言ったとおりsshにそんなに詳しくないのですけど、ググった結果を見る限り、サーバ側が古いせいという感じを受けました。 なので、サーバ側に「ちゃんと新しくしろ」というのが一番の筋な気がするんですが、まぁそう簡単には行かないでしょうから(笑)、せめてppkファイルは使わずに、サーバ管理者に「openssh形式の秘密鍵をちょうだい!」とねだって、その秘密鍵を使うのも手ではないでしょうか。
guest

0

自己解決

せっかく回答をいただきましたが、そのままではどうにもならず最終的に以下の方法で解決いたしましたので報告いたします.

Ubuntuで起こっている秘密鍵のエラーを回避する.

ssh -vvv で出たデバッグ行を見ますと、以下のようでした.

puttygenの-Oでprivate-openssh-newを指定すると、Load key
"/home/tmakita/.ssh/id_rsa": invalid format で落ちる.

id_rsa.ppkが相当古いものなので、そこからOpenSSHに変換してもやはり無理があるのでしょう.

このためまずUbuntuでこのようなエラーにならないキーペアをssh-keygenにて作成しました.

  • id_rsa.pub
  • id_rsa
  • id_rsa.ppk

このid_rsaを使用してサーバーにsshで接続すると、サーバー側の公開鍵はまだ古いままですので最終的にははねられますが、少なくとも秘密鍵のロードではエラーにならないようにできました.

サーバー側の公開鍵の更新

サーバー担当者にお願いして、id_rsa.pubを差し替えていただきました.

結果

Ubuntuではsshでの接続は成功!svnコマンドも通りました.

Windows側はダメでした.

TortoisePlink.exeとの相性があるのか、更新したid_rsa.ppkではエラーになってしまってTortoiseSVNで接続できません.メインで使うのはやはりWindowsですので、TortoisePlink.exeを使った認証はやめて、pageant.exeをスタートアップで常駐させて認証するように方法を変更しました.

これでWindows, UbuntuともSVNへの接続が問題なくできるようになりました.

反省

もっと早くキーを更新しておけば話は早かったです.大変失礼いたしました.

投稿2021/07/21 02:21

tmakita

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問