2012-11-07 2 views
4

SSH가 서버에서 공개 키를 업로드 한 다음 개인 키를 사용하여 인증하는 것과 비슷한 방식으로 웹 API를 사용하여 CLI에서 사용자에게 권한을 부여하고 싶습니다. 가능한가?개인 및 공개 키를 사용하는 API 인증

공개 키/개인 키를 생성하는 것이 아니라 기존 id_rsa 및 id_rsa.pub를 다시 사용하는 것입니다.

당신은 더 쉽게 만드는 소프트웨어 패키지를 알아

이 @edit (레일 보석에 바람직 루비?) :

은 특히, 내가 웹 사이트에 로그인 업로드하고 내 공개 키를 연결하려면 온라인 계정으로 로그인 한 다음 CLI 인터페이스를 통해 웹 사이트의 API (인증)를 사용할 수 있습니다.

+0

죄송합니다. 이것은 사용자가 웹 API를 사용하기 위해 개인 키를 인증으로 사용할 수있게하려는 것입니까? 또는 사용자가 인증에 개인 키를 사용하여 CLI에 액세스 할 수있게 하시겠습니까? – jpgeek

+0

웹 사이트에 로그인하고 내 공개 키를 내 계정에 연결 한 다음 cli 인터페이스를 통해 웹 사이트의 api에 로그인 할 수 있습니다. – sheerun

답변

1

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 라이브러리를 사용할 수도 있습니다.

난 당신이 PEM에 ssh를-Keygen은 기본 형식에서 변환하려면

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

를 사용할 수 있다고 생각합니다. OpenSSL :: PKey :: RSA가 ssh의 기본 형식을 허용하는지 잘 모르므로 필요한 경우 서버에서이 명령을 실행하여 변환을 수행 할 수 있습니다. 형식을 제대로 일치 시키려고 시도해야합니다. -keygen. 또한 STDIN에서 ssh-keygen을 읽고 STDOUT에 쓸 수 있으므로 파일을 사용하여 변환 작업을 수행 할 필요가 없습니다.

관련 문제