環境とか
踏み台サーバー上でncを使えること。sudoerならパッケージを入れてしまいましょう。
なにはともあれgitを入手
ここ(http://msysgit.github.io/)から左側の通常のgit for windowsを入手。
インストールはOK連打で。
先に進む前に
そもそもsshでアクセスできることを確認する。
ローカルで"ssh fumidai.foo.bar.jp"で踏み台サーバーにログインして、その状態で"ssh mokuteki.foo.bar.jp"でログインできることを確認しておく。
fumidaiとかmokutekiとかのホスト名は適宜読み替えて下さい。
まずは踏み台の設定
まずは、ゲートウェイを踏み台にして目的のマシンに一発でssh接続出来るようにする。
"~/.ssh/config"を作成して以下の内容で埋める。
埋める時はviコマンドで。
Host fumidai HostName fumidai.foo.bar.jp User hoge Port 22 Host mokuteki Hostname mokuteki.foo.bar.jp User hoge Port 22 ProxyCommand ssh fumidai nc %h %p
fumidaiとかmokutekiとかfooとかbarとかhogeは適当に読み替えて下さい。
この状態で
ssh mokuteki
本当は"-W"を使いたいのだが、付属するOpenSSHのバージョンが若干古くて"-W"を使えないので諦めてncに頼る。
して、2回パスワードを要求されつつもログイン出来ればとりあえずOK。
exitでローカルに戻っておく。
公開鍵の設定
ローカルに戻ってきたら今度は公開鍵の設定。
"ssh-keygen"で鍵を生成する。
ファイルの出来る場所はデフォルトで、パスフレーズは適当に。
"~/.ssh/id_rsa.pub"が公開鍵。こいつを各サーバーにコピーする。
scp ~/.ssh/id_rsa.pub fumidai:~ scp ~/.ssh/id_rsa.pub mokuteki:~
コピーしたら書くマシンのホームに公開鍵がコピーされているので、各マシン上で
touch ~/.ssh/authorized_keys cat id_rsa.pub >> ~/.ssh/authorized_keys
今度はローカルの"~/.ssh/config"を次のように書き換える。
Host fumidai HostName fumidai.foo.bar.jp User hoge Port 22 IdentityFile ~/.ssh/id_rsa Host mokuteki Hostname mokuteki.foo.bar.jp User hoge Port 22 IdentityFile ~/.ssh/id_rsa ProxyCommand ssh fumidai nc %h %p
IdentifyFileを追加しただけ。
この状態で"ssh mokuteki"をして2回RSA公開鍵のパスフレーズを要求されればOK。
公開鍵のパスフレーズ入力を自動化
アクセスの度に毎回毎回パスフレーズ要求されてうるさいのでエージェントで自動化する。
パスフレーズを空にすることでも対処できるが怖すぎるのでエージェントで。
"~/.bashrc"を以下のように設定
source ~/.ssh-agent-info ssh-add -l >& /dev/null if [ $? == 2 ] ; then ssh-agent > ~/.ssh-agent-info source ~/.ssh-agent-info fi if ssh-add -l >& /dev/null ; then echo "ssh-agent : identity is laready stored." else ssh-add fi
この状態で"source .bashrc"するとパスフレーズを要求されるはずなので入力。
入力後、目的のホストにパスワード無しでsshログイン出来ればOK。
これ以降、git bashの起動時にパスフレーズを要求される。
やっとgitにたどり着く
windowsのエクスプローラで作業用のフォルタを右クリックして"Git Bash"を選択。
選択したフォルダをカレントディレクトリとしてgit bashを起動出来て便利。
git clone mokuteki:/ver/repos/fuga.git
自分のマシン上のリポジトリを格納しているディレクトリをフルパスで指定。
パスとか間違えてるとリポジトリ読めないとか合ってんのか確かめろとか怒られる。
デフォルトのルートパス指定した気がするんだけど、何故か通用しない。あれってgitユーザー限定?
とりあえずこれでOK?
たのしいgitライフ