nDiki : authorized_keys

2004年7月26日 (月)

TortoiseSVNsvn+ssh

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。

 前略\TortoisePlink.exe -l ユーザ名 -pw パスワード

なるほど。動いた。しかしかなり嫌な感じ。

ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。

準備 (Windows 側)

  1. PuTTYインストール

SSH用の鍵ペアを作成 (Windows 側)

  1. PuTTYgen を実行。
    1. SSH2 RSA を選択。
    2. Generate マウスを適当に動かす。
    3. パスフレーズを入力。
    4. Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
    5. 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。

SSHの鍵をサーバ側に置く (サーバ側)

  1. そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。

接続テスト (Windows 側)

  1. PuTTY を実行。
    1. Session - Host Name にリポジトリのあるホスト名を指定。
    2. Connection - Auto-login username にリポジトリのあるホスト上のアカウントを指定。
    3. Connection - SSH - Auth - Private key file for authentication: で 保存した ppk ファイルを指定。
    4. Session - Saved Sessions にホスト名を入力して Save。
    5. Open ボタンを押して接続確認。

TortoiseSVN でパスフレーズ入力を省略できるように Pageant を起動 (Windows 側)

  1. Pageant を起動。
    1. キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。

この状態で TortoiseSVN から接続できるようになった。

追記

2005年8月4日に若干体裁を整理。

スポンサード リンク
[ 7月26日全て ]

2007年1月26日 (金)

久しぶりに SSH の新しい鍵を作成し、複数利用できるように設定

仕事であるサーバへアクセスするのに、 SSH公開鍵を送るように頼まれた。 そういえば今までずっと同じ鍵を使い続けていたけれど、いちおうこういのは管理上分けておいた方がいいかもしれない。

ということでかなり久しぶりに鍵を作成。5年ぶりぐらい?

鍵の作成

 ssh-keygen -C <メールアドレス> -f id_rsa.hogehoge

リモートホストの authorized_keys への登録

手元のいくつかのサーバも新しい鍵を使えるように authorized_keys に追加しておく。 ssh-copy-id コマンドというものを今回初めてしった。 リモートホスト上の ~/.ssh/authorized_keys に、ローカルホストから直接公開鍵を追加することができる。こんな便利なものがあったとは。

 ssh-copy-id -i ~/.ssh/id_rsa.hogehoge naney@サーバ名

config への登録

デフォルトとは異なる新しい名前で作ったこの鍵もリモートホストへの接続に使えるようにするため、ローカルの ~/.ssh/config に設定を追加しておく。

 IdentityFile ~/.ssh/id_rsa.hogehoge

keychain への追加

それと ~/.profile の中で呼んでいる keychain の引数にも ~/.ssh/id_rsa.hogehoge を追加。

[ 1月26日全て ]

2012年3月8日 (木)

特定の Git リポジトリだけ読み書きできる SSH 鍵を作る

サーバ上の特定の Git リポジトリのみにアクセスできる SSH 鍵を作ってみた。

具体的にいうと、SSH 鍵を作って、さくらのレンタルサーバ上に dotfiles 用 Git リポジトリを作ってそこだけを読み書きできるように設定した。今回は Gitosis とかそういう大袈裟なのは使わないない方向で。

サーバ上に Git リポジトリを作る

まずサーバに SSH で入ってホームディレクトリの下に Git リポジトリを作成。

 $mkdir -p /home/naney/var/git/dotfiles.git
 $cd /home/naney/var/git/dotfiles.git
 $git --bare init

特定の Git リポジトリだけにアクセスできる git-shell ラッパーを用意する

通常の git-ssh は特定のリポジトリだけアクセスを許可するとかできない。 なのでさきほど作った Git リポジトリのみアクセスできるようなラッパーを用意する。

 #!/bin/sh

 repo=$(eval echo $(echo ${SSH_ORIGINAL_COMMAND} | cut -d' ' -f2))
 if [ "x${repo}" != "x/home/naney/var/git/dotfiles.git" ]; then
   echo "No access granted to reporitory ${repo}" 1>&2
   exit 1
 fi

 /home/naney/local/git/bin/git-shell -c "${SSH_ORIGINAL_COMMAND}"

これをサーバ上で /home/naney/local/bin/git-shell-dotfiles という名前で保存し実行権限をセットしておく。 なお Git は ~/local/git の下に以前インストールしておいてある。

複数のディレクトリを指定できるようにするとか、そういのはよしなにどうぞ。

ローカルホスト上で専用の SSH 鍵を作ってサーバに送る

 $cd ~/.ssh
 $ssh-keygen -C dotfiles -f id_rsa.dotfiles
 $ssh-copy-id -i ~/.ssh/id_rsa.dotfiles naney@example.sakura.ne.jp

サーバ上の authorized_keys を修正する

さきほどの ssh-copy-id で、サーバ上の ~/.ssh/authorized_keys の最後に新しい鍵の行が追加されている。この行の先頭に以下を追記する。

command="/home/naney/local/bin/git-shell-dotfiles",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

これでこの鍵で接続した時は git-shell-dotfiles のみが直接実行できるようになる。

なおシェルをフルには使わせてくないけれど、任意のディレクトリの Git リポジトリの読み書きができても良いのであれば直接 git-shell を指定する。

command="/home/naney/local/git/git-shell -c \"$SSH_ORIGIAN_COMMAND\"",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

ローカルホスト上の ~/.ssh/config を編集

config ファイルに

 IdentityFile ~/.ssh/id_rsa.dotfiles

を追記し、この鍵も使えるようにしておく。

clone してみる

きちんとできていれば

 git clone naney@example.sakura.ne.jp:/home/naney/var/git/dotfiles.git

とすることで clone できることを確認。またサーバ上の他の場所に作ったリモートリポジトリにアクセスができないようになっていることをチェック。(テストする時は他の SSH 鍵で接続されないように .ssh から他の鍵を削除する)。

別の端末で

~/.ssh/id_rsa.dotfiles を適宜別の端末にコピーし、~/.ssh/config に IdentityFile を書き込めば、同様に git clone できるようになる。

[ 3月8日全て ]

2012年3月9日 (金)

今日のさえずり: 「iPad (でかいスマフォ)」って、それドデカホーンじゃね?

2012年03月08日

2012年03月09日

  • 09:45 もうすぐ確定申告会場もくろー @ 株式会社ミクシィ(mixi, Inc.)にタッチ! http://t.co/JYu1LlF5
  • 11:50iPad (でかいスマフォ)」って、それドデカホーンじゃね?
  • 23:21 退勤。作った資料でちょっぴり幸せになるはず。
  • 23:36 RT @yugui: 「このエディタの部分は実際には好きなエディタを指定してください」と言いながら資料には「export EDITOR=ed」と書いたら本当にそう指定した初心者がいて困ったことがある。初心者はネタをネタと見抜けないので配慮しよう、という教訓
  • 24:46 そういえば今日ミーティングで歳をいったら「見えない」って言われたんだけれど、それはどっちの方向でだったんだろー。
  • 24:48 人生ゲームハイ&ローを思い出した。
  • 24:58 @satetsu 次のトランプの数が上か下かを順に当てていくところがとても印象に残ってます。
[ 3月9日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.08131s / load averages: 1.00, 0.65, 0.63
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker