summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Carranza <pcarranza@gmail.com>2016-03-11 12:41:18 +0000
committerPablo Carranza <pcarranza@gmail.com>2016-03-24 20:48:27 +0000
commitaedf824d2d7f5bce34d9e8dba728af05ea236b79 (patch)
tree463c14e9519eb11344e451fe8c2b1ae5b4031a08
parent459e44826b5d5499a3fbf0a4c5c78988fabd8481 (diff)
downloadgitlab-shell-aedf824d2d7f5bce34d9e8dba728af05ea236b79.tar.gz
Change use of fingerprint for whole key
-rwxr-xr-xbin/authorized_keys10
-rw-r--r--lib/gitlab_net.rb4
-rw-r--r--spec/vcr_cassettes/ssh-key-not-found.yml2
-rw-r--r--spec/vcr_cassettes/ssh-key-not-implemented.yml2
-rw-r--r--spec/vcr_cassettes/ssh-key-ok.yml2
5 files changed, 10 insertions, 10 deletions
diff --git a/bin/authorized_keys b/bin/authorized_keys
index 6f9880c..1e070ec 100755
--- a/bin/authorized_keys
+++ b/bin/authorized_keys
@@ -4,22 +4,22 @@
# GitLab shell authorized_keys. Query gitlab API to get the authorized command for a given ssh key fingerprint
#
# Ex.
-# /bin/authorized_keys e6:17:f2:f3:b7
+# /bin/authorized_keys BASE64-KEY
#
# Returns
# command="/bin/gitlab-shell key-#",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQA...
#
-fingerprint = ARGV[0]
-abort "# No fingerprint provided" if fingerprint.nil?
+key = ARGV[0]
+abort "# No key provided" if key.nil?
require_relative "../lib/gitlab_init"
require_relative "../lib/gitlab_net"
require_relative "../lib/gitlab_keys"
-authorized_key = GitlabNet.new.authorized_key(fingerprint)
+authorized_key = GitlabNet.new.authorized_key(key)
unless authorized_key.nil?
puts GitlabKey.new.key_line(authorized_key["id"], authorized_key["key"])
else
- puts "# No key was found with fingerprint #{fingerprint}"
+ puts "# No key was found for #{key}"
end
diff --git a/lib/gitlab_net.rb b/lib/gitlab_net.rb
index d5d1ebd..39384c7 100644
--- a/lib/gitlab_net.rb
+++ b/lib/gitlab_net.rb
@@ -56,8 +56,8 @@ class GitlabNet
get("#{host}/check", read_timeout: CHECK_TIMEOUT)
end
- def authorized_key(fingerprint)
- resp = get("#{host}/authorized_keys?fingerprint=#{fingerprint}")
+ def authorized_key(key)
+ resp = get("#{host}/authorized_keys?key=#{key}")
JSON.parse(resp.body) if resp.code == "200"
rescue
nil
diff --git a/spec/vcr_cassettes/ssh-key-not-found.yml b/spec/vcr_cassettes/ssh-key-not-found.yml
index 68c646e..55e5b4f 100644
--- a/spec/vcr_cassettes/ssh-key-not-found.yml
+++ b/spec/vcr_cassettes/ssh-key-not-found.yml
@@ -2,7 +2,7 @@
http_interactions:
- request:
method: get
- uri: https://dev.gitlab.org/api/v3/internal/ssh-key?fingerprint=whatever
+ uri: https://dev.gitlab.org/api/v3/internal/authorized_keys?key=whatever
body:
encoding: US-ASCII
string: secret_token=a123
diff --git a/spec/vcr_cassettes/ssh-key-not-implemented.yml b/spec/vcr_cassettes/ssh-key-not-implemented.yml
index 4eafd27..98c3c00 100644
--- a/spec/vcr_cassettes/ssh-key-not-implemented.yml
+++ b/spec/vcr_cassettes/ssh-key-not-implemented.yml
@@ -2,7 +2,7 @@
http_interactions:
- request:
method: get
- uri: https://dev.gitlab.org/api/v3/internal/authorized_keys?fingerprint=whatever
+ uri: https://dev.gitlab.org/api/v3/internal/authorized_keys?key=whatever
body:
encoding: US-ASCII
string: secret_token=a123
diff --git a/spec/vcr_cassettes/ssh-key-ok.yml b/spec/vcr_cassettes/ssh-key-ok.yml
index 3f2756a..9101236 100644
--- a/spec/vcr_cassettes/ssh-key-ok.yml
+++ b/spec/vcr_cassettes/ssh-key-ok.yml
@@ -2,7 +2,7 @@
http_interactions:
- request:
method: get
- uri: https://dev.gitlab.org/api/v3/internal/authorized_keys?fingerprint=42:18:16
+ uri: https://dev.gitlab.org/api/v3/internal/authorized_keys?key=42:18:16
body:
encoding: US-ASCII
string: secret_token=a123