我怎样才能得到所有的用户和他们的使用shell脚本的linux中的authorize_key?

我正在使用以下脚本来获得关键的数字。 但它不工作,是否有其他方法存在? 或者我应该如何解决这个错误?

#!/bin/bash for i in `cat /etc/passwd` ; do\ echo $i |\ awk -F: { print `grep -o "ssh-rsa" <<< (cat /home/"$1"/ .ssh/authorized_keys ) | wc -l` } done 

如果你只是想显示键的数量,你可以这样做:

 for homedir in $(awk -F':' '{print $6}' /etc/passwd); do [[ -f "${homedir}/.ssh/authorized_keys" ]] && cat "${homedir}/.ssh/authorized_keys" done 

要显示每个文件的计数:

 for homedir in $(awk -F':' '{print $6}' /etc/passwd); do [[ -f "${homedir}/.ssh/authorized_keys" ]] && wc -l "${homedir}/.ssh/authorized_keys" done 

要按用户名显示计数:

 while IFS='' read -r line || [[ -n "$line" ]]; do USERNAME="$(echo "$line" | awk -F: '{print $1}')" HOMEDIR="$(echo "$line" | awk -F: '{print $6}')" if [[ -f "${HOMEDIR}/.ssh/authorized_keys" ]]; then COUNT="$(grep -c 'ssh-' "${HOMEDIR}/.ssh/authorized_keys")" else COUNT=0 fi echo "${USERNAME} has ${COUNT} keys." done < "/etc/passwd"