2019-04-19

RoboForm から Bitwarden にデータを移行した

大変久しぶりでございます。
ずっと更新が滞っていましたが、まだ書くつもりはあるのです。

さて、皆さんはパスワードをどう管理しているでしょうか?
私のような古い人間にとって、IDは自分が好きに決められる物では無く与えられる物でしたが、今や好きに決められるのが当たり前!メールアドレスを使うのも当たり前!
つまり複数のサイトでIDを使い回すのがデフォルトになっています。

それ故、パスワードの使い回しは大変危険であり、絶対に避けなければならないのですが、一々覚えておくのは無理ですよね?
と言う事で私はパスワードマネージャとして RoboForm を20年近く使っていました。

RoboForm は各種ブラウザに対応していて、パスワードの保存/入力が簡単に出来るのですが、対応出来ないサイトもそこそこ増えてきましたし、macOS/iOSはパスワードの生成から保存、複数端末の同期までOSでやってくれるので、5年間のライセンス更新を機に乗り換えを検討しました。

メジャーどころは比較してみましたが、機能面では大きく変わらないので、有償版の価格で Bitwarden に決めました。
RoboForm は5年間で 11,400 円で高いわけじゃないですが、Bitwarden なら無償版でもデバイス間で同期できますし、有償でも半額程度というのが決定打ですね。

OSの機能だけで十分?
いえいえ、ダメなシステム屋が多すぎるせいでパスワードに記号を含めてはダメとか色んな制約がついている場合が多く、OSが生成したパスワードが使えなかったり、他のOSと同期できなかったり、FirefoxやChromeで使えなかったりとまだまだ不便な点も多いので併用がいいかな?と思います。

乗り換えを躊躇する最も大きな壁はデータ移行ですが、これは Bitwarden が RoboForm からのインポートをサポートしているので簡単そうです。

説明されているとおり、RoboFormからcsv形式でエクスポートしたファイルをインポートしたのですが…トラブル発生!

暗号化する項目は1万文字以内じゃなきゃダメ!と不可思議なエラー。
そんなわけない!日本語対応が不十分で区切りを認識できなかったのかと思ってエクスポートしたcsvファイルを確認したら…確かにありました。

今は無き PC-Success!懐かしい!!

画面上では一部しか表示されておりませんが、全文は注意事項から始まりプライバシーポリシー、通販規約、保証規定、初期不良・修理対応、問い合わせ先と盛りだくさん!
6,746 文字 205 行に及ぶ内容がテキストフィールドに埋め込まれていました。
こんな物テキストフィールドに入れるなよ…

これを取り除いたところ、問題無くインポートはできました。
RoboForm が csv ファイルにエクスポートするのはログイン情報だけだったので、ブックマーク、アプリケーション、アイデンティティ、連絡先、メモは残念ですが手作業で移行しました。

Bitwarden が RoboForm と比べてどうか?はまだ日が浅くて何とも言えませんが、とりあえずデバイス間で同期も出来ているし、使う上で問題はなさそうな感じです。

それでは、また。

2018-06-22

Windows 10 のユーザーホームフォルダ名が気に入らなくてインストールし直した

Windows 設定が複雑すぎて嫌いなんです。

 

先日、Windows 10 をインストールしたのですが、普通にインストールしたらユーザーホームフォルダが

C:¥Users¥日本語名

になってしまいました。

 

ユーザーIDとユーザー名は別なはずだけど、わかりにくいから入力させないのかもしれませんが、ホームフォルダ名は非常に重要なポイントなのでインストーラ上で入力した名前がホームフォルダ名になることを表示して欲しいものです。

 

で、先日。

とあるアプリが動かなかったのですが、エラーメッセージを見る限りホームフォルダ名が日本語になっている事に起因すると思われる内容でした。

 

仕方が無いのでウンザリしながら Windows を再インストールしたのでした。

今度は名前にユーザーIDを入力しておいて、インストール後、管理ツールでフルネームを設定したところ、ログイン画面にはフルネームが表示され、期待していたとおりの動作になりました。

 

Windows もう少し UI 考えて欲しいなぁ…

 

それでは、また。

 

2018-06-19

VMware Fusion 10 + Windows 10 でマウスカーソルが消える

VMware Fusion 10 上の Windows 10 でマウスカーソルが表示されないことが多々あり、非常に不便な思いをしていました。

[環境設定…]→[一般]→[ゲーム]→[常にゲーム用にマウスを最適化]

とすればちゃんと表示されるんですがこれはこれで非常に使い勝手が悪いので避けたいところ。

調べて見た結果、似た問題の解法として
  1. Windows のレジストリを変更する方法
  2. 仮想PCの設定ファイルを変更する方法
の2つが見つかりました。

試してみたところ、私の環境では 2. の方で解決しました。
環境は macOS 10.13.5 + VMware Fusion 10.1.2 + Windows 10 Pro 1709 でした。

以下、設定方法。



1. Windows のレジストリを変更する方法

Windowsレジストリに
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableCursorSuppression=0
を設定します

  1. [スタート]を押して "regedit" と入力し、レジストリエディタを起動します。

    20180619 010 レジストリエディタ起動
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System を表示します。

    20180619 020 レジストリ項目表示
  3. 現在の設定をバックアップしておきます。(覚えておくならバックアップ不要ですが…)

    20180619 030 レジストリエクスポート
  4. 変更する項目 EnableCursorSuppression をダブルクリックして値に 0 を入力します。(無ければ適当なところを右クリックして DWORD 値を追加します)

    20180619 040 レジストリ項目値設定
    20180619 050 レジストリ項目新規作成
  5. Windows を再起動します。(どのタイミングで適用されるか不明なので)

2. 仮想PCの設定ファイルを変更する方法

vmxファイルに
mks.noHostCursor = "TRUE"
を設定します

  1. 仮想PCの電源を切っておきます。
  2. Finder で該当仮想PCファイルを右クリックして[パッケージの内容を表示]を選びます。
  3. 表示されたフォルダの vmx ファイルを適当な場所にバックアップします。(覚えておくならバックアップ不要ですが…)
  4. vmx ファイルをテキストエディタで開きます。
  5. 末尾に1行
     mks.noHostCursor = "TRUE"
    を追加します。(既に mks.noHostCursor があれば値を TRUE に変更します)

以上で設定完了です。



後半の設定方法の部分、書くのに意外と時間がかかったけど、要らない情報な気がしてしかたがない。
英語ページへのリンクだけでよかったかな?

それでは、また。

2018-06-06

Parallels Desktop 13 で「リンクされた複製」のリンクを解除できない

Parallels Desktop 仮想マシンで一時的に使う予定のアプリをインストールする際に「リンクされた複製」を使ってみた。

スナップショットで管理してもよかったのだが、現在の設定がどうなっているか注意して使う必要が出てくるのを嫌っての事だったが、状況が変わり、アプリを暫く使い続ける事になったためリンクを解除したくなった。

当然出来る物だと思っていたのだが、そのようなメニューは用意されておらず、仕組み上出来ないはずはない…と思い実験。
(というか VMware Fusion では GUI から当たり前に出来る事なのに…)

リンクの状況を調見てみる

とりあえず状況把握という事で

  • 仮想マシンの .pvm を右クリックで「パッケージの内容を表示」
  • 中にあるディスクイメージの .hdd を右クリックで「パッケージの内容を表示」
  • DiskDescriptor.xml というそれらしいファイルがあるのでテキストエディタで開く

中にはリンク元への参照が記述してあり、ファイル名に埋め込まれている識別子はスナップショットの識別子となっているようだ。

リンク元のファイルをコピーしてきてパスを書き直してやればとりあえず動きそうだけど、スナップショットの設定とも整合性を取るべきだとは思うが手作業でやるのは面倒そうなのでやめておくことにした。

コマンドラインを調べる

設定ファイルを自分で書き換えるのは難しそうだったので次は付属ツールを使って何とか出来ないか調べてみる。

  • Application/Parallels Desktop.app を右クリックして「パッケージの内容を表示」

するとパッケージ内 Contents/MacOS に色々コマンドがあるが prl_disk_tool が使えそうな雰囲気。
他には Contents/Application/Parallels Mounter も使えるかも?

prl_disk_tool を使ってみる

それっぽい名前なので man を見てみたらちゃんと用意されていました!素晴らしい!!
$ man prl_disk_tool
で説明が表示されます!
主要なところを拾うと

基本的な使い方

prl_disk_tool  [--help]  <COMMAND>  [OPTIONS] --hdd <disk_name> [--comm
       <memory_name>]

マージ

prl_disk_tool merge --hdd <disk_name>

ヘルプ

prl_disk_tool --help

マージの説明

スナップショットを結合するっぽい説明が書かれている。
COMMANDS
       merge
           Merges all snapshots of the virtual hard disk.

参照

prlctl も見てね d(^^)
SEE ALSO
       prlctl(8)

と言う事で、一応 prlctl の man も
$ man prlctl 
としてみましたが、リンクされた複製を作るコマンドはあるものの、リンクを解除するコマンドは見当たりませんでした。

マージしてみる

prl_disk_tool merge --hdd 仮想PC名.pvm/仮想HDD名-0.hdd
リンク先を含めてマージしてくれるのかと思いきや全然そんな事はなく、マージ後起動しようとしたらOSがインストールされていないから起動できないと言われてしまいました orz

そして想定外な事にリンク元の仮想HDDまで破壊されてしまいました orz
リンク元の仮想PCはバックアップ取ってなかったんですが ( ・_・;)
と言う事で残念ながら実験はここまで。

他の案

コマンドラインがダメなら手動で設定書き換える前に
  1. 仮想マシンに HDD を追加
  2. Parallels Mounter で新旧HDDをマウント
  3. ディスクユーティリティでディスクイメージをコピー
  4. 仮想マシンから古いHDDを削除
で出来ないか試してみるようと思っていましたが、それも出来なくなってしまいました。

Parallels は一見良さそうなんですけど安定性というか、運用を考えると VMware の方が使い勝手がいいんですよね…

中途半端になってしまいましたが、
それでは、また。

2018-05-27

macOS に Google Domains の Dynamic DNS を設定する

Mac は「どこでもMy Mac」という純正サービスで外部から自分のPCに接続できる機能があるのですが、柔軟に使うにはやはりドメイン名でアクセスできると便利!
と言う事で、ダイナミックDNSを設定してみました。

macOS は「システム環境設定」の「共有」に「ダイナミック・グローバル・ホスト名」と言う項目があってダイナミックDNSをお手軽に設定出来そうな雰囲気を醸し出していますが、これが対応しているのは「セキュアダイナミックDNSアップデート(RFC3007)」というプロトコル。
そしてそのプロトコルに対応したDNSサービスは私が調べた中ではDynくらいしかありませんでした。
過去にこれを試したことがあるのですが、イマイチ安定しないし、AirMacからは「ダイナミック・グローバル・ホスト名」の設定が消えるし、あまりオススメできない方法となります。

ということで DNS サービスは広く使われている更新プロトコル「DynDNS2 Client Update Protocol」を使える Google Domains を使う事にしました。
Google Domains は未だに Beta サービスのままですが、有償サービスとして日本でも利用可能になっています。

 

また、ダイナミックDNSクライアントは、ddclient を使う事にしました。
これも広く使われていますし、DynDNS2 だけでなく Google Domains 独自プロトコルにも対応しているようです。

 

Google Domains にサブドメインを追加

複雑なことは何もなく、ダイナミックDNSを選んで名前を入力、追加を押すだけの簡単な作業です。
追加されたサブドメイン毎にユーザー名、パスワードが生成されるのでこれを ddclient の設定に使います。

 

ddclient のインストール

MacPorts からインストール

ddclient はMacPortsでインストール出来ます。

$ sudo port -c install ddclient

インストールの終わりにこんなメッセージが表示されます。

###########################################################
# A startup item has been generated that will aid in
# starting ddclient with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo port load ddclient
###########################################################

自動機能の設定は無効になってるから、自動起動したければ sudo port load ddclient を実行してね、とのこと
やはり結果出力はちゃんと確認するべきですね。

ddclient を Google Domains 向けに設定する

インストール出来たら早速設定を始めます。
ddclient にはデフォルトの設定ファイルが無く、代わりに設定サンプルファイルがあったためこれを元に設定を行う事にしました。
まず、サンプルファイルをコピーします。

$ sudo cp /opt/local/etc/ddclient/ddclient.conf.sample /opt/local/etc/ddclient/ddclient.conf

次にコピーした設定ファイルを編集します。
いつもの通りエディタは vi で、編集内容は後で diff を取ることにします。

$ sudo vi /opt/local/etc/ddclient/ddclient.conf

ddclient.conf の末尾に Google Domains の設定があるのでこれを流用するが、プロトコルに googledomains を指定するとIPアドレスの取得などに問題が発生したため、これを解決するのではなく一般的なプロトコル dyndns2 を使う事にした。

$ sudo diff -u /opt/local/etc/ddclient/ddclient.conf.sample /opt/local/etc/ddclient/ddclient.conf
--- /opt/local/etc/ddclient/ddclient.conf.sample 2018-04-25 12:02:54.000000000 +0900
+++ /opt/local/etc/ddclient/ddclient.conf 2018-05-02 15:34:31.000000000 +0900
@@ -214,3 +216,9 @@
# login=my-auto-generated-username,
# password=my-auto-generated-password
# my.domain.tld, otherhost.domain.tld
+protocol=dyndns2
+use=web
+server=domains.google.com
+login=xxxxxxxxxxxxxxxx
+password='xxxxxxxxxxxxxxxx'
+hugahuga.hogehoge.net

 

動作確認

実行してみると

-bash: /opt/local/sbin/ddclient: /opt/local/bin/perl5.24: bad interpreter: No such file or directory

というエラーが出るため ddclient を修正する。(UNIXの流儀としてこれが正しい対応かは自信が無いですが…)

$ sudo vi /opt/local/sbin/ddclient

先頭の2行

#!/opt/local/bin/perl5.24
#!/opt/local/bin/perl5.24

#!/opt/local/bin/perl5.26
#!/opt/local/bin/perl5.26

 とする。

ダメなことにオリジナルをコピーしておくのを忘れました orz
どのように変更したかわかるように残す事は徹底的に習慣化すべきだと思うのでこれは後で戻しておくことにします。

 

自動起動を設定

動作することが確認出来たので自動起動を設定します。

$ sudo port load ddclient

 

自動起動しない問題に対応

ここまで設定すれば動作するかと思いきや、自動起動がちゃんと機能していないようです。
調べて見るとキャッシュディレクトリが無いことが原因のようです。

$ sudo mkdir /opt/local/var/cache/ddclient

キャッシュディレクトリを作って再起動したところ、ちゃんと動作していることが確認出来ました。

 

高々 Dynamic DNS を設定するくらいのことですが、ちゃんと動作しているか確認するのを含めて結構時間がかかってしまいました。

それでは、また。