diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-15 16:31:13 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-15 16:31:13 -0400 |
commit | 1a435c0f4b41904025d0f263734cb9aea6a03b13 (patch) | |
tree | 96ce607542c806c4a99c0463c3fea534e4c8e424 /bin/ssh-list-authorized-keys | |
parent | 043466d94da837fefb95cda8ecab44b03049890d (diff) | |
parent | e4b972f3c82dbe4b5e363e48ed01d97cc060a2c0 (diff) |
Merge remote-tracking branch 'hackers/parabola-hackers'
# Conflicts:
# .gitignore
Diffstat (limited to 'bin/ssh-list-authorized-keys')
-rwxr-xr-x | bin/ssh-list-authorized-keys | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/bin/ssh-list-authorized-keys b/bin/ssh-list-authorized-keys new file mode 100755 index 0000000..5fb1ea1 --- /dev/null +++ b/bin/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 |