diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-15 16:53:59 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-15 16:53:59 -0400 |
commit | c10faa5b2b617d5d62407567cd8d495d7ddddeb6 (patch) | |
tree | 6181f3a1e71403cc1e54c32ca244c819040c9562 /scripts/ssh-list-authorized-keys | |
parent | 1a435c0f4b41904025d0f263734cb9aea6a03b13 (diff) |
git mv bin scripts
Diffstat (limited to 'scripts/ssh-list-authorized-keys')
-rwxr-xr-x | scripts/ssh-list-authorized-keys | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/ssh-list-authorized-keys b/scripts/ssh-list-authorized-keys new file mode 100755 index 0000000..5fb1ea1 --- /dev/null +++ b/scripts/ssh-list-authorized-keys @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby +# Usage: ssh-list-authorized-keys [username] + +load "#{File.dirname(__FILE__)}/common.rb" + +all_users = load_all_users.values + +groupnames = ARGV & cfg["ssh_pseudo_users"] +usernames = ARGV & all_users.map{|u|u["username"]} + +users = all_users.find_all{|u| + # [ username was listed ] or [ the user is in a listed group ] + usernames.include?(u["username"]) or not (u["groups"] & groupnames).empty? +} + +# Buffer the output to avoid EPIPE when the reader hangs up early +output="" +users.each do |user| + if user["ssh_keys"] + user["ssh_keys"].each do |addr,key| + output+="#{key} #{user["fullname"]} (#{user["username"]}) <#{addr}>\n" + end + end +end +print output |