5

SSHと同様の方法でWeb APIを使用してCLIでユーザーを承認したいと思います(サーバーに公開鍵をアップロードし、秘密鍵を使用して承認します)。出来ますか?

公開/秘密キーのパーを生成するつもりはありませんが、既存の id_rsa と id_rsa.pub を再利用します。

それを簡単にするソフトウェアパッケージを知っていますか (できれば Ruby on Rails gems?)

@編集:

具体的には、Web サイトにログインし、公開鍵をアップロードしてオンライン アカウントに接続し、CLI インターフェイスを介して Web サイトの API (認証) を使用できるようにしたいと考えています。

4

1 に答える 1

2

openssl ライブラリを使用できます。あなたが望むものに対するより完全な解決策に関しては、私はそれが利用可能だとは思わない. ただし、ライブラリで実装するのに手間がかかりすぎてはいけません。

http://ruby-doc.org/stdlib-1.9.2/libdoc/openssl/rdoc/OpenSSL/PKey/RSA.html

基本的に次のようなことを行います:

# private_key_str can be in PEM or DER format
OpenSSL::PKey::RSA.new(private_key_str, 'passphrase').public_key

そしてそれを公開鍵と比較します。使用する形式に応じて、#to_pem または #to_der でキーの文字列表現を取得できます (少し試してみてください)。代わりに rsa ライブラリも使用できます。

使えると思います

ssh-keygen -e -f id_rsa.pub > pemkey.pub

ssh-keygen のデフォルト形式から PEM に変換します。必要に応じて、サーバー上でこのコマンドを実行して変換を行うことができます。OpenSSL::PKey::RSA が ssh のデフォルト形式を受け入れるかどうかわからないため、形式が適切に一致するように試行して確認する必要があります。 -keygen. ssh-keygen を STDIN から読み取り、STDOUT に書き込むこともできるため、変換を行うためにファイルを使用する必要はありません。

于 2012-11-09T12:14:34.787 に答える