- OS: Linux (CentOS 5.5)
- Ruby: 1.9.2
そして、heroku-clientのダウンロード。
# wget http://assets.heroku.com/heroku-client/heroku-client.tgzさっそくherokuへログインを試みる。
# tar zxvf heroku-client.tgz
# cd heroku-clientすると以下のようなエラーが発生。
# ./heroku
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- readline (LoadError)どうやら、readlineのrequireに失敗している模様。
tetu1984の日記を参考にさせてもらい、readlineをインストール。
まず、OSにインストール。
# yum install readline-devel次に、rubyのextentionをインストール。
# cd ruby-1.9.2-p180/ext/readline再度herokuへのログインを試みる。
# ruby extconf.rb
# make
# make install
# ./heroku loginエラー発生!
Enter your Heroku credentials.
Email: xxxx@xxxx.xxxx
Password:
Could not find an existing public key.
Would you like to generate one? [Yn] Y
Generating new SSH public key.
Uploading ssh public key /root/.ssh/id_rsa.pub
/root/heroku-client/lib/heroku/auth.rb:195:in `read': No such file or directory - /root/.ssh/id_rsa.pub (Errno::ENOENT)
どうやら、初回ログイン時にSSHの鍵ペアを作成して、herokuに登録する動きのようだ。
デフォルトでは、秘密鍵「~/.ssh/id_rsa」と公開鍵「~/.ssh/id_rsa.pub」を作ろうとする。
しかし、私の環境では、前者の秘密鍵がすでに別の用途で存在していて、かつ公開鍵が存在していないために、エラーが起きたっぽい。
解決策は、デフォルトとは違う名前で鍵を作る。
本家のホームページにデフォルトから変える場合の手順が書いてあった。
どうやら、SSHの鍵ペアを作り、「heroku key」の引数を渡せば渡せばよいっぽい。
まずSSHの鍵ペアを作る。
# ssh-keygen -t rsa -f heroku.keyそして、herokuに公開鍵登録。
# ./heroku keys:add ~/.ssh/heroku.key.pub確認。
Uploading ssh public key /root/.ssh/heroku.key.pub
# ./heroku keysできた。
=== 1 key for xxxx@xxx.xxx
ssh-rsa AAxxxxxx...6gx7ek4w== xxx@xxx.xxx
heroku-clientがsshする時に使う秘密鍵ファイルがわからないはずなので、sshのconfigを書いておく。
# vi ~/.ssh/config
Host heroku.com
User git
Port 22
Hostname heroku.com
IdentityFile ~/.ssh/heroku.key ←作った秘密鍵
ちなみに、herokuに登録したSSHの公開鍵を消すには、以下のようにすればよい。
まず、以下のコマンドでSSHの公開鍵の名前を調べる。
$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local←これが鍵の名前
そして、「heroku key:remove」。
$ heroku keys:remove joe@workstation.local
Key joe@workstation.local removed.
詳しくは、公式ドキュメント参照
0 件のコメント:
コメントを投稿