Rails で Web 上から SSH 鍵を生成したくなったけど、方法がなかなか見つからなかったから書いておく。備忘録。
コード
Gemfile に gem 'net-ssh'
を追加して、↓みたいなモデルを作ればうまくできた。
class SslKey < ActiveRecord::Base belongs_to :user validates :user_id, presence: true validates :title, presence: true, uniqueness: { scope: :user } validates :private_key, presence: true validates :public_key, presence: true before_validation :generate_keys private def generate_keys key = OpenSSL::PKey::RSA.new 4096 self.private_key = key.to_pem data = [key.to_blob].pack('m0') self.public_key = "#{key.ssh_type} #{data}" end end