∞セキュリティ
RVMではセキュリティを非常に重視しており、(バージョン1.26.0
以降)すべてのリリースとrvm-installer
スクリプトに暗号署名を施し、真正なソースからのものであることを保証しています。
∞GPG
署名にはGPGを使用しています。gpg
とgpg2
のどちらでも問題ありません。
リモートサーバーからキーをダウンロードする際にgpg
で問題が発生することがあります。お使いのシステムでgpg2
が利用可能な場合は、gpg2
を使用する方が良いでしょう。ただし、バージョン2.1.17のgpg2
でも同様の問題が報告されています。ダウングレードまたは新しいバージョンへのアップグレードをお勧めします。
∞キーのインストール
信頼できる人物のキーのみを信頼するようにしてください。- 当社のコードを実行することを信頼する場合は、当社のキーも信頼してください。メンテナーのキーを以下に示します。
409B6B1796C275462A1703113804BB82D39DC0E3 # mpapis 7D2BAF1CF37B13E2069D6956105BD0E739499BDB # pkuczynski
RVMのインストールを試みる前に、まずgpg2
をインストールし、これらのキーをインポートしてください。
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
上記のキーサーバーで問題が発生した場合は、別のキーサーバーを試してください。いくつかの代替案を以下に示します。
- hkp://ipv4.pool.sks-keyservers.net
- hkp://pgp.mit.edu
- hkp://keyserver.pgp.com
∞ファイアウォールに関する問題
GPGキーのインポートが永遠にハングする場合は、ファイアウォールが原因である可能性があります。ファイアウォールの背後にある場合は、送信ポート11371(TCP)を開いていることを確認してください。
∞IPv6に関する問題
ホストでIPv6が有効になっていない場合(Dockerコンテナでよく発生します)、一部のキーサーバーが接続に失敗することが知られています。~/.gnupg/dirmngr.conf
に次の行を追加して、gpgの内部dirmngr
がIPv6を使用しないように禁止できます。
disable-ipv6
既存のdirmngr
プロセスが実行されていないことを確認し(実行されている場合は終了させ)、次に最初に指定したとおりにgpg --recv-keys
コマンドを再実行すると、動作するはずです。
ここで注意すべきは、後で本当にIPv6が必要になった場合、この設定を忘れてしまう可能性があることです。ただし、ほとんどの人にとってはありそうにありません。
∞代替案
代替として、Webサーバーから直接キーをインポートすることもできますが、これはそれほど安全な方法ではありません。
curl -sSL https://rvm.dokyumento.jp/mpapis.asc | gpg --import - curl -sSL https://rvm.dokyumento.jp/pkuczynski.asc | gpg --import -
∞Keybase
キーのアイデンティティはkeybase.ioで確認できます。
∞キーの信頼
echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | gpg2 --import-ownertrust # mpapis@gmail.com echo 7D2BAF1CF37B13E2069D6956105BD0E739499BDB:6: | gpg2 --import-ownertrust # piotr.kuczynski@gmail.com
∞検証済みのインストールの実行
通常、次のコマンドを使用してインストールを実行することをお勧めします。
\curl -sSL https://get.rvm.io | bash -s stable
これはかなり安全ですが、インストーラーが有効なソースからのものであることを確認したい場合は、手動で検証済みのインストールを実行できます。
\curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer -o rvm-installer && \curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer.asc -o rvm-installer.asc && \gpg2 --verify rvm-installer.asc rvm-installer && \bash rvm-installer
検証手順は更新に対して自動的に実行され、署名が無効な新しいバージョンはインストールできません。
∞キーの定期的な更新
キーの状態を定期的に更新して、キーが失効していないことを確認することをお勧めします。cronに追加することもできます。
gpg2 --refresh-keys