このブログのビルドとデプロイはwerckerを利用しています。最近、そのWerckerがDockerベースになり、rsyncでデプロイするところでハマったので記録として残しておきます。sshやscpも基本的には同じようにできると思います。
werckerにSSHキーの登録
私の場合、Dockerベースになる前に登録してあったSSHキーが無くなっていた(!)ので再登録します。何かのはずみで消えたのでしょう。もしSSHキーでこける場合は疑ってみてください。
ちなみに鍵が無くなったことには、werckerビルドした時の以下のメッセージがで気づきました。
鍵生成
さて、鍵生成しましょう。wercker上でできるので難しくはありません。werckerにログインし、werckerのアプリケーションのタブメニューから「Environment」を選択して「+ Generate SSH Keys」をクリックします。
鍵の名前は適当なものを入力してください(ここではHOGEHOGEにします)。ただしこの名前はあとでwercker.yml記述するときに使いますので短い方がいいと思います。強度はお好みで。特殊な理由がないなら4096bit選んでよいでしょう。あとは「Generate」ボタンを押せば鍵が生成されます。
公開鍵をホストサーバーに登録
先ほどの操作でXXXXXX_PRIVATE
とXXXXXX_PUBLIC
という鍵ができたと思います。このうちXXXXXX_PUBLICが公開鍵です。この公開鍵の値をコピーしておいてください。
コピーした文字列をホストサーバーに登録します。ホストサーバーにはwerckerユーザーでも作っておき、/home/wercker/.ssh/authorized_keys
ファイルを作ったら、そこにペーストすれば公開鍵登録は完了です。
wercker.ymlの編集
次にwercker.ymlを編集します。以下に実際に使っているymlの一部をコメント付きで記載しますので参考にしてください。
昔にくらべてだいぶすっきりしました。あとは試しに実行してみてください。うまくいく・・はず!