skm 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +2 -0
- data/bin/skm +57 -5
- data/lib/skm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjRiOGRjZDZlMzI1ODg2MWNkYWFiZmYwNjAwM2M3Y2Q3Y2FhZmUwNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjA3OWViMTZiMmFhMzdjOTBmYWZkZGMzZjdiNmZiOGIxYTMyM2YwMw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTgyZTU0ZTQ3MjUzYzFhNzFlYzA5YTk5NTUzYTQ2ZWYzZTY5M2EwNjZiOGNj
|
10
|
+
NDUwMTY2MzMxYWFmN2E0MTdjMzFhMzJlMjRlZTkxMTlhZmI3MmZhYjE1OTg3
|
11
|
+
MGM5ZWQyYjQ1MDAzNjQ2MTdjZDdjYjRhNTgxOGFkODBiY2U4ZGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTAyZWEyYmNkYTBlMDAyNmJkNjkxNGU3ZTk1MGZhNDEyOWRlNzNjZmE3Zjhk
|
14
|
+
Mjc1NTM3OTFmNjFlN2U5NTk5OTVjZjEyZDExZjZmZjBkMjYzMjYxMDU0MjVk
|
15
|
+
OGQ1NDdmNGY1YzgxMzQ3OThiMjEzY2M1NTMxZWM4N2FhMTUxNGY=
|
data/README.md
CHANGED
data/bin/skm
CHANGED
@@ -13,9 +13,25 @@ end
|
|
13
13
|
|
14
14
|
DOT_SSH_DIR = "#{HOME_DIR}/.ssh"
|
15
15
|
|
16
|
+
# check the existance of a key
|
17
|
+
# @pub: also check public key?
|
18
|
+
def does_key_exist?(keys_dir, name, pub)
|
19
|
+
does_rsa_key_exist?(keys_dir, name, pub) || does_dsa_key_exist?(keys_dir, name, pub)
|
20
|
+
end
|
21
|
+
|
22
|
+
def does_rsa_key_exist?(keys_dir, name, pub)
|
23
|
+
key_dir = "#{keys_dir}/#{name}"
|
24
|
+
File.exists?("#{key_dir}/id_rsa") && (!pub || File.exists?("#{key_dir}/id_rsa.pub"))
|
25
|
+
end
|
26
|
+
|
27
|
+
def does_dsa_key_exist?(keys_dir, name, pub)
|
28
|
+
key_dir = "#{keys_dir}/#{name}"
|
29
|
+
File.exists?("#{key_dir}/id_dsa") && (!pub || File.exists?("#{key_dir}/id_dsa.pub"))
|
30
|
+
end
|
31
|
+
|
16
32
|
# create command
|
17
33
|
def cmd_create(argv, keys_dir)
|
18
|
-
# create a new ssh key under ~/.
|
34
|
+
# create a new ssh key under ~/.skm/key-name directory
|
19
35
|
|
20
36
|
opts = Trollop::options do
|
21
37
|
|
@@ -69,7 +85,7 @@ def cmd_use(argv, keys_dir)
|
|
69
85
|
key_dir = "#{keys_dir}/#{name}"
|
70
86
|
|
71
87
|
# check for existence of the key
|
72
|
-
unless
|
88
|
+
unless does_key_exist?(keys_dir, name, false)
|
73
89
|
puts "Key #{name} doesn't exist."
|
74
90
|
exit 3
|
75
91
|
end
|
@@ -101,6 +117,39 @@ def cmd_list(argv, keys_dir)
|
|
101
117
|
end
|
102
118
|
end
|
103
119
|
|
120
|
+
# show command
|
121
|
+
def cmd_show(argv, keys_dir)
|
122
|
+
Trollop::options do
|
123
|
+
banner <<-EOS
|
124
|
+
Ssh Key Manager
|
125
|
+
|
126
|
+
skm show key-name
|
127
|
+
|
128
|
+
Args:
|
129
|
+
EOS
|
130
|
+
end
|
131
|
+
|
132
|
+
Trollop::die "Too few arguments for 'show' command." if argv.empty?
|
133
|
+
|
134
|
+
name = argv[0]
|
135
|
+
|
136
|
+
# get the pub file
|
137
|
+
pub_file = ''
|
138
|
+
if does_rsa_key_exist?(keys_dir, name, true)
|
139
|
+
pub_file = "id_rsa.pub"
|
140
|
+
elsif does_dsa_key_exist?(keys_dir, name, true)
|
141
|
+
pub_file = "id_dsa.pub"
|
142
|
+
else
|
143
|
+
puts "Key #{name} doesn't exist."
|
144
|
+
exit 4
|
145
|
+
end
|
146
|
+
|
147
|
+
File.open("#{keys_dir}/#{name}/#{pub_file}", 'r').each_line do |line|
|
148
|
+
puts line
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
|
104
153
|
SUB_COMMANDS = %w(create list use)
|
105
154
|
global_opts = Trollop::options do
|
106
155
|
version "#{SshKeyManager::VERSION::STRING} (C) 2013 Hong Xu"
|
@@ -114,6 +163,7 @@ global_opts = Trollop::options do
|
|
114
163
|
|
115
164
|
create Create a new ssh key
|
116
165
|
list List ssh keys
|
166
|
+
show Show the public key
|
117
167
|
use Switch ssh keys
|
118
168
|
|
119
169
|
Use skm [command] --help for the help of the command.
|
@@ -137,11 +187,13 @@ cmd = ARGV.shift # get the subcommand
|
|
137
187
|
case cmd
|
138
188
|
when 'create'
|
139
189
|
cmd_create(ARGV, keys_dir)
|
140
|
-
when 'use'
|
141
|
-
cmd_use(ARGV, keys_dir)
|
142
190
|
when 'list'
|
143
191
|
cmd_list(ARGV, keys_dir)
|
192
|
+
when 'show'
|
193
|
+
cmd_show(ARGV, keys_dir)
|
194
|
+
when 'use'
|
195
|
+
cmd_use(ARGV, keys_dir)
|
144
196
|
else
|
197
|
+
Trollop::die 'Use "skm --help" or "skm [command] --help" for help'
|
145
198
|
end
|
146
199
|
|
147
|
-
|
data/lib/skm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hong Xu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|