IntelliJ 2018.1でsvn+ssh接続する方法(Windows)

新しいノートパソコンにようやく壊れてないWindowsが入り、IntelliJもインストール。さあ開発を始めるぞ!まずは今まで書いてたコードをSubversionからチェックアウトだ!

チェックアウトだ…

チェックアウト…(何度パスワードを入力しても通らない)

 

…というわけで、SVNからチェックアウトができなくて困った。でもなんとか解決できたのでその経過を書こうと思います。

こういう記事を書くのは初めてなんですが他にも困っている人はいそうなので助けになれば。

 

なお今回の環境はWindows10ですが、要はsvnとsshをインストールすれば良いわけなので他のOSでもやることは同じかと思います、たぶん。(Windows以外ならsshはデフォルトで入ってると思いますが)

さて、IntelliJでSubversionが使えないというときの対処法について、大抵のフォーラムには「use command line clientのチェックを外せ」と書いてありますが、現在(2018/4)の最新版にそんな設定はありません。

IntelliJ IDEA Blogの記事によれば今まで使われていたサードパーティー製ライブラリの維持が難しくなったとかで、command line clientの使用は必須となったんだそうです。

 

ならまあ仕方ないので、そのコマンドラインクライアントとやらを入れましょう。Windowsならこれ。

https://www.visualsvn.com/downloads/

こちらのページにある「Apache Subversion command line tools」がそれですので、ダウンロードして適当な場所に解凍します。

IntelliJのFile | Settings | Version Control | Subversionの一番上にコマンドラインクライアントへのパスを入力する欄があるので、解凍したフォルダの./binにあるsvn.exeを指定しましょう。

または、設定はそのままで./binにWindowsの環境変数Pathを通しても良いはずです。私はそうしました。

 

次にsshのクライアントの導入です。これが苦労した部分。

sshクライアントといえばOpenSSH。そしてWindows10では(まだベータ版ですが)公式によるOpenSSHの移植が用意されています。単にこれを使えば解決かと思ったのですが…どうもこれを入れても、何度試しても認証が通りません。

原因はこのWin公式版OpenSSHがパスワード認証に対応していない、というかそれも含めて対応している認証方式が少ないことにありました(GithubにIssueもあってOpenされてた。ベータが外れて正式版になったら解決するかも)。もちろん接続先のサーバーでed25519が使われてるならこれでも良いでしょうが、今回の接続先のサーバーではEclipse Subversiveとの互換性の問題で致し方なく、鍵認証でなくパスワード認証が使われています。

 

でもWindowsには確か公式でないOpenSSHもあったはずです。それに確か鍵認証にも対応してて、名前はそのまんまOpenSSH for Windows。その名前で検索だ!

(↑全部Win公式版OpenSSHの情報)

…Windows公式がOpenSSHを実装してくれたおかげでそっちが全っ然見つからねえ。

 

中途半端な仕事しやがってとWindowsへのさらなるヘイトを微妙に積もらせつつ(※まだベータ版だから仕方ない)、そのOpenSSH for Windowsを探します。それでなんとか見つけました。

http://sshwindows.sourceforge.net/

丁寧なことにインストーラまで用意してくれているのでそれを使ってインストールしましょう。

インストール途中で「入れるコンポーネントを選んでね」と言われます。今回のところ自分がSSHサーバーになる予定はないのでSSH Serverのほうは不要だと思い、チェックを外しておきました。といっても別に入れたって害はないと思いますが。

それが終わったら例によってIntelliJのFile | Settings | Version Control | Subversion | SSHにあるssh executableの欄にインストール先の./sshにあるssh.exeを指定しましょう。またはPathを通しましょう。

最後に、File | Settings | Version Control | Subversion(最初にsvnへのパスを指定したところ)に戻ってEnable interavtive Modeにチェックを入れておきます。password/passphraseを使うなら必須だと書いてありました(つまり、使わないなら多分いらない)。

 

これで設定は完了です。これでようやくチェックアウトもできるはず!

わあい!

 

では、今日のところはこの辺でノシ

スポンサーサイト

コメント
トラックバック
この記事のトラックバックURL