sshkeyauth 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ssh/key/helper.rb +21 -0
- data/lib/ssh/key/signer.rb +3 -6
- data/lib/ssh/key/verifier.rb +3 -10
- data/samples/speed.rb +18 -0
- metadata +4 -4
- data/samples/id_rsa_tester +0 -27
- data/samples/id_rsa_tester.pub +0 -1
@@ -0,0 +1,21 @@
|
|
1
|
+
require "net/ssh"
|
2
|
+
|
3
|
+
module SSH; module Key; module Helper
|
4
|
+
# Add a private key to this signer.
|
5
|
+
def add_key_file(path, passphrase=nil)
|
6
|
+
@logger.info "Adding key from file #{path} (with#{passphrase ? "" : "out"} passphrase)"
|
7
|
+
@keys << Net::SSH::KeyFactory.load_private_key(path, passphrase)
|
8
|
+
end # def add_key_file
|
9
|
+
|
10
|
+
# Add a public key from your known_hosts file
|
11
|
+
def add_key_from_host(hostname)
|
12
|
+
hostkey = %x{ssh-keygen -F #{identity}}.split("\n")[1].chomp.split(" ",2)[-1]
|
13
|
+
@keys << Net::SSH::KeyFactory.load_data_public_key(hostkey)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Add a public key from a ublic key string
|
17
|
+
def add_public_key_data(data)
|
18
|
+
@logger.info "Adding key from data #{data}"
|
19
|
+
@keys << Net::SSH::KeyFactory.load_data_public_key(data)
|
20
|
+
end # def add_key_file
|
21
|
+
end; end; end # module SSH::Key::Helper
|
data/lib/ssh/key/signer.rb
CHANGED
@@ -3,9 +3,12 @@
|
|
3
3
|
require "rubygems"
|
4
4
|
require "net/ssh"
|
5
5
|
require "ssh/key/signature"
|
6
|
+
require "ssh/key/helper"
|
6
7
|
require "etc"
|
7
8
|
|
8
9
|
module SSH; module Key; class Signer
|
10
|
+
include SSH::Key::Helper
|
11
|
+
|
9
12
|
attr_accessor :account
|
10
13
|
attr_accessor :sshd_config_file
|
11
14
|
attr_accessor :logger
|
@@ -27,12 +30,6 @@ module SSH; module Key; class Signer
|
|
27
30
|
end
|
28
31
|
end # def ensure_connected
|
29
32
|
|
30
|
-
# Add a private key to this signer.
|
31
|
-
def add_key_file(path, passphrase=nil)
|
32
|
-
@logger.info "Adding key from file #{path} (with#{passphrase ? "" : "out"} passphrase)"
|
33
|
-
@keys << Net::SSH::KeyFactory.load_private_key(path, passphrase)
|
34
|
-
end # def add_key_file
|
35
|
-
|
36
33
|
# Signs a string with all available ssh keys
|
37
34
|
#
|
38
35
|
# * string - the value to sign
|
data/lib/ssh/key/verifier.rb
CHANGED
@@ -3,13 +3,12 @@
|
|
3
3
|
require "rubygems"
|
4
4
|
require "net/ssh"
|
5
5
|
require "ssh/key/signature"
|
6
|
+
require "ssh/key/helper"
|
6
7
|
require "etc"
|
7
8
|
|
8
|
-
if $DEBUG
|
9
|
-
require "awesome_print"
|
10
|
-
end
|
11
|
-
|
12
9
|
module SSH; module Key; class Verifier
|
10
|
+
include SSH::Key::Helper
|
11
|
+
|
13
12
|
attr_accessor :account
|
14
13
|
attr_accessor :sshd_config_file
|
15
14
|
attr_accessor :authorized_keys_file
|
@@ -126,11 +125,6 @@ module SSH; module Key; class Verifier
|
|
126
125
|
return identities
|
127
126
|
end # def verifying_identities
|
128
127
|
|
129
|
-
def add_public_key_data(data)
|
130
|
-
@logger.info "Adding key from data #{data}"
|
131
|
-
@keys << Net::SSH::KeyFactory.load_data_public_key(data)
|
132
|
-
end # def add_key_file
|
133
|
-
|
134
128
|
def find_authorized_keys_file
|
135
129
|
# Look up the @account's home directory.
|
136
130
|
begin
|
@@ -226,7 +220,6 @@ module SSH; module Key; class Verifier
|
|
226
220
|
|
227
221
|
keys << identity
|
228
222
|
end
|
229
|
-
#@logger.info keys.awesome_inspect
|
230
223
|
return keys
|
231
224
|
end
|
232
225
|
end; end; end # class SSH::Key::Verifier
|
data/samples/speed.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
|
4
|
+
require "base64"
|
5
|
+
require "json"
|
6
|
+
$:.unshift "../lib"
|
7
|
+
$:.unshift "lib"
|
8
|
+
require "ssh/key/signer"
|
9
|
+
|
10
|
+
data = (argv[0] or "Hello world")
|
11
|
+
signer = SSH::Key::Signer.new
|
12
|
+
|
13
|
+
start = Time.now
|
14
|
+
0.upto(1000) do
|
15
|
+
sigs = signer.sign(data)
|
16
|
+
end
|
17
|
+
duration = Time.now - start
|
18
|
+
puts "Duration: #{duration}"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jordan Sissel
|
@@ -41,9 +41,9 @@ files:
|
|
41
41
|
- lib/ssh/key/verifier.rb
|
42
42
|
- lib/ssh/key/signature.rb
|
43
43
|
- lib/ssh/key/signer.rb
|
44
|
-
-
|
44
|
+
- lib/ssh/key/helper.rb
|
45
|
+
- samples/speed.rb
|
45
46
|
- samples/server.rb
|
46
|
-
- samples/id_rsa_tester.pub
|
47
47
|
- samples/test.rb
|
48
48
|
- samples/client.rb
|
49
49
|
has_rdoc: true
|
data/samples/id_rsa_tester
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
MIIEoQIBAAKCAQEApZyBMG3etDCOelDYJLa2Q0eVKgk9hZfSXty+Uoa3yP8qtNUp
|
3
|
-
JjVdna8+ZK1QMzfVpkJdCl7bnhFX1TmwvjaQsQZll+x8CFLoTQ+qkCIl9KNmup9Y
|
4
|
-
q5zaPejihOAjFGMpVDfLseKeuWSKPgoTSFQmeGCG0QcC2phAsflNIeLKg+TjZOfd
|
5
|
-
+JFtJW20SgzC6U3ec3M6rV8zGMblnVBa/yP/3HbKwihB1UFQen1zUZAeWr/XpBYy
|
6
|
-
NElRiUUaZEU0e1vo471TUQreGwdbuj7x1SutA/kQWIyN9WM1j0dg7HT0U9lgn2Jj
|
7
|
-
/Z9KUKNbhUS70H27TyoDCKViq1MxNtS/DBfCiQIBIwKCAQAJdqhL6QVpYdxBgPZo
|
8
|
-
f3ghGgiGDygWQzCXtNes8cFb8VLlwwmqaXMQUygjApbeWvZEA8rNZIGUAP20abJU
|
9
|
-
Ax42AF2Tpx0Hyjko+ZS3x2/iF/c93ThEUhsZewWhMWEXG5v2LxL0ONXetUm6ZvnJ
|
10
|
-
nmiZKhZVFlfvO+Zwkecmgfzxl/VyoOp9ZmnyuNFAhYmyxjxBRhY3P1bG0XsEOs4y
|
11
|
-
uzjjlHbwtN2hTVscUNTgQB5IL6smpGKHPEZCwiwRtuAe4OoNsQpxN6jzxxbP1RDf
|
12
|
-
yYyYaOzrBtzELgynZW5wG/4QoyMyzU26KSqQ4kUthGD1esBz85/gwq4vKOmFL1fM
|
13
|
-
8ohDAoGBANU0bhw3lfbKIcqUIoSsxfls4cAVEMachloYN18M3NSnLYGRfVSS8qP7
|
14
|
-
mylm+juX/Rx6iCiUKemXdRMpVfbDeBmw96mTAIeoIq6WHxHx/qDnHCCTKctALKYU
|
15
|
-
TJxPn8CrgQ5DzLoxB177BtD6ciqbyLLmoGzNI1nonEyT0pr+RA+nAoGBAMbaebou
|
16
|
-
ezhDqZvMyVSD+saQRvXRef3k7qK7E+N6esemoye8Tca7hPIPW7yWM9DTgIgFUU1h
|
17
|
-
gJphigQE7uubg89DK3MAvEnIyJ3vDziW5e+xsL20aqtMELIJi7fy61WFMWpijNmS
|
18
|
-
x4JuJM/uRfBs0OB7YiheMyCJau4IRaOLP2JPAoGANtL3vhzsDEKa+ZPOXKF0vHsV
|
19
|
-
eokS8T4xLRwrftdr/Cr9ErBiDm7t76cZRSkbxi5lqDzD7S1p3PsPefSvtHtoBps4
|
20
|
-
Xs4Hc1ce3G++2LqR7txXsJre3H43Xef2cVZNppKARX8mA/36lMQ08+ihA6RmzurY
|
21
|
-
y4U0+dy6ehdiCpkncb0CgYEAmWa1rOIHSKk5srPrxNrXZfpFXounQDRDD9IlSRVX
|
22
|
-
ZtEBhQ2bFaaZwgvZDdL0xap5GHkhdjVF82/Q3od2ez10T25Ut81eDQiawvo+8SPz
|
23
|
-
NT/uvjq4sAd6l/i8PXJAg80mHt5PZgOD9udA+CzW3grNBPF3m3veTEzAM/fAsVzK
|
24
|
-
fwkCgYBx28hbkieTfSu/7L8leizHh39sxApybQMhZxM9NKWqSVYxg99KAMw7oI5Z
|
25
|
-
H2VbaEdGWqfPCR9wi+8iLuuJFy8SPg/lyt+gF6yoULlWLtbAh+qMCAv+vt+xfhBg
|
26
|
-
fMwkUtVLJE12slyCGh/bU+ORwGX2I4uYGsLhj5Gony3V/T7zBw==
|
27
|
-
-----END RSA PRIVATE KEY-----
|
data/samples/id_rsa_tester.pub
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApZyBMG3etDCOelDYJLa2Q0eVKgk9hZfSXty+Uoa3yP8qtNUpJjVdna8+ZK1QMzfVpkJdCl7bnhFX1TmwvjaQsQZll+x8CFLoTQ+qkCIl9KNmup9Yq5zaPejihOAjFGMpVDfLseKeuWSKPgoTSFQmeGCG0QcC2phAsflNIeLKg+TjZOfd+JFtJW20SgzC6U3ec3M6rV8zGMblnVBa/yP/3HbKwihB1UFQen1zUZAeWr/XpBYyNElRiUUaZEU0e1vo471TUQreGwdbuj7x1SutA/kQWIyN9WM1j0dg7HT0U9lgn2Jj/Z9KUKNbhUS70H27TyoDCKViq1MxNtS/DBfCiQ== jls@snack.home
|