Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not better, but could also be written as:

  find ~/.ssh -name '*.pub' | xargs ssh-keygen -lf
Here's a simple bash function to check all your GitHub keys:

  function check_github_keys {
    username=$1
    i=0
    curl -sw "\n" "https://github.com/${username}.keys" | while IFS="\n" read -r line ; do
      tmp=`mktemp -t githubkey`;
      echo "$line" > $tmp
      res=$(ssh-keygen -lf $tmp)
      rm $tmp
      ((i=i+1))
      echo "${username}.keys:${i}  ${res/ $tmp/}"
    done
  }
Invoke as:

  check_github_keys <username>
I'm sure there's a better way to write that one though!


Your initial "find" version would be better if it used print0 because it would avoid failing on files with spaces in their names:

find ~/.ssh -name '*.pub' -print0 | xargs -0 ssh-keygen -lf


This of course can be rewritten as find ~/.ssh -name \*.pub -exec ssh-keygen -lf {} \;




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: