SVNに入る前に、SSHクライアントからサーバに接続
ふだんサーバに接続するのにはPoderosaというソフトを使ってます。
でも毎回パスフレーズを聞かれて鬱陶しい限りでした><
まずこいつから黙らせましょう。
はじめに鍵生成
- Poderosa.exeを起動し、[ツール]-[SSH鍵生成ウィザード]を実行。
- 何も設定せずそのまま[次へ]
- 『パスフレーズを空にして鍵を生成しますか?』//うん。
- ウィンドウのなかでマウスぐりぐり
- [秘密鍵を名前をつけて保存]//これはwindows側で保持する鍵です。大切にね!
- [OpenSSH形式で公開鍵を名前をつけて保存]//これはサーバに転送してサーバ側の設定に使います。
作った鍵をサーバで設定する
- Poderosaでパスワードを使ってサーバにログインする。
- % cd ~/
- % mkdir .ssh
- この[.sshフォルダ]にOpenSSH形式で作った公開鍵をFTPでもなんでもいいのでサーバに送る。
- % cd .ssh
- % vim authorized_keys //この名前のファイルを作る
- % cat 公開鍵の名前 >> authorized_keys
- % cd ../
- % chown -R ユーザ名 .ssh
- % chmod 700 .ssh
- % chmod 600 .ssh/authorized_keys
鍵認証でログインする
- Poderosaで[ファイル]-[新規Telnet/SSH接続]を開く。
- ホスト:サーバのアドレス
- プロトコル:SSH2
- アカウント:ユーザ名
- 認証方法:公開鍵
- 鍵ファイル:さっき作った秘密鍵
これでOK。
超スムーズログイン!!
その前に環境の設定
- Putty ごった煮もインストールする。
- インストールしてない場合はここからDLして解凍。
- 適当な場所に置いたら上と同様にPATHを通す。*1
- puttygen.exeを実行し、[既存の秘密鍵の読込]をする。
- 読み込んだら[秘密鍵の保存]をする。
- Putty用の鍵完成
試しにPuttyでログインしてみる
- putty.exeを起動
- [セッション]で[ホスト名]にサーバのアドレスを入れる。
- [接続]-[データ]で[自動ログインのユーザ名]に自分のユーザ名を入れる。
- [接続]-[SSH]-[認証]で[認証のためのプライベートキーファイル]にコンバートした秘密鍵を指定する。
- [セッション]に戻って[セッション一覧]に適当な名前を入れて保存する。
- [開く]ボタンで接続。
- さくっとログインウマー!
まとめ
コマンドラインからsvn+sshが使えると何がうれしいかと言うと、バッチで自動化!とか
あんなことやこんなことに使えそうですね。
まぁ僕はコマンドラインを使ってるのが楽しいだけなんですけどねw
今回個人的にはまったポイントはさくらのサーバーでchownってしないといけない事。
全然気づかなかった><
ということで、試行錯誤しながらあっちこっちを弄っているので、「それもっと簡単にできるよ!」
とか「違うよ!全然違うよ!」という意見があればどうぞ教えてください><
追記(7/31)
今日会社で試したら
「command not found」と怒られてしまいました><
以下の文字列をauthorized_keysに追加したらいけました。なんで家でできたのか謎。
ssh-dss (以下略
↓ssh-dssの前に一行で追加する。
command="$HOME/local/bin/svnserve -t --tunnel-user=ユーザ名 -r $HOME/var/svn/repo*3",
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss (以下略