はなゐろぐ

主に技術関係の覚え書きです。

ヘテムルでWordmoveをつかう

2020年4月15日

ヘテムルでWordmoveを利用するには下記の条件が必要です。

これらの条件が揃っていることを前提として進めていきます。

SSH 接続できるようにする

鍵のファイル名はid_rsa_hetemlとして話を進めます。ヘテムルのマニュアルにはFTPアカウントのパスワードを入力するよう書かれていましたが、SSHのパスワードじゃないとログインできませんでした。謎…。

まず、~/.ssh/configに設定を追加します。

+ Host heteml
+   HostName        {ホスト名}
+   User            {ユーザ名}
+   Port            2222
+   IdentityFile    ~/.ssh/id_rsa_heteml
+   IdentitiesOnly  yes
+   PreferredAuthentications password

次に、公開鍵を作成してヘテムルにコピーし、リネームして権限を変更します。

$ cd ~/.ssh
$ ssh-keygen -t rsa
$ scp ~/.ssh/id_rsa_heteml.pub heteml:~/
$ ssh heteml
# ここからサーバ内
$ mkdir .ssh
$ mv id_rsa_heteml.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ exit

最後に、~/.ssh/configから1行削除します。

 Host heteml
   HostName        {ホスト名}
   User            {ユーザ名}
   Port            2222
   IdentityFile    ~/.ssh/id_rsa_heteml
   IdentitiesOnly  yes
-  PreferredAuthentications password

ssh hetemlでパスワードを聞かれずにログインできたら完了です。

参考: heteml で公開鍵を使う方法 - Qiita

ちなみに、複数の鍵を登録したい場合は、~/.ssh/authorized_keysに公開鍵の内容をコピーして追記すれば良いです。

Wordmove を実行してみる

wordmove pullが失敗したのでエラーメッセージを見てみると、依存パッケージがないよと言われていたのでインストール。余談ですが、MacにプリインストールされているRubyだとgemのインストール時にパーミッションエラーではじかれるので、rbenvなどで別途インストールしたほうがよさそうです。

$ gem install rbnacl -v 4.0.0
# 3.2.0以上5.0.0未満なので適当に…(真似しちゃダメよ)
$ gem install rbnacl-libsodium bcrypt_pbkdf

これでもまだエラーが出るのでメッセージを確認。

key was 257 bytes (Expected 32) (RbNaCl::LengthError)

下記のIssueにあるとおり、ssh-addコマンドで解決。

SSH Key RbNaCl::LengthError pulling db · Issue #510 · welaika/wordmove
I have a problem while executing wordmove pull -d via SSH. First I got, after trying to connect to remote: Traceback (most recent call last): 34: from /Users/Till/.rvm/gems/ruby-2.6.0-latest/bin/ru...
SSH Key RbNaCl::LengthError pulling db · Issue #510 · welaika/wordmove favicon https://github.com/welaika/wordmove/issues/510#issuecomment-474616209
SSH Key RbNaCl::LengthError pulling db · Issue #510 · welaika/wordmove
$ ssh-add ~/.ssh/id_rsa_heteml

これでwordmoveコマンドが動くようになりました。