여러 사람이 단일 계정에 로그인 할 수있는 프로덕션 시스템이 있습니다. 프로덕션 서버에는 개인 계정이 없기 때문에 계정은 응용 프로그램 용이며 계정은 아닙니다.
감사 목적으로 누가 몇시에 로그인했는지 알 수 있기를 원하며 SSH 키를 사용하여 로그인 할 때 추적하는 것이 논리적 인 것처럼 보입니다 (추적 할 다른 식별자가 없기 때문에).
SSH는 사용자를 인증 할 때 사용자 이름을 시스템의 보안 로그에 기록하지만, 로그인에 사용 된 인증 된 공개 키를 기록하지 않습니다. OpenSSH가 어떤 공개 키를 사용했는지보고 할 수 있습니까? 아니면 해당 키와 관련된 주석입니까?
사용중인 운영 체제는 CentOS 5.6이지만 다른 운영 체제에서도 가능하다면 듣고 싶습니다.
답변
/ etc / sshd / sshd_config에서 LogLevel을 VERBOSE로 올리면 사용자 인증에 사용 된 공개 키의 지문이 기록됩니다.
LogLevel VERBOSE
다음과 같은 메시지가 나타납니다.
Jul 19 11:23:13 centos sshd[13431]: Connection from 192.168.1.104 port 63529
Jul 19 11:23:13 centos sshd[13431]: Found matching RSA key: 54:a2:0a:cf:85:ef:89:96:3c:a8:93:c7:a1:30:c2:8b
Jul 19 11:23:13 centos sshd[13432]: Postponed publickey for user from 192.168.1.104 port 63529 ssh2
Jul 19 11:23:13 centos sshd[13431]: Found matching RSA key: 54:a2:0a:cf:85:ef:89:96:3c:a8:93:c7:a1:30:c2:8b
Jul 19 11:23:13 centos sshd[13431]: Accepted publickey for user from 192.168.1.104 port 63529 ssh2
당신이 사용할 수있는
ssh-keygen -lf /path/to/public_key_file
특정 공개 키의 지문을 가져옵니다.
답변
사람들이 ssh-agent를 사용하는 경우 .bashrc에 넣을 수 있습니다.
SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log
답변
의 LogLevel
매개 변수를 가지고 놀아보십시오 sshd_config
. 자세한 내용은 man sshd_config
답변
멋진 블로그 게시물이 귀하의 질문에 답변합니다 : http://www.screenage.de/blog/2012/02/10/how-to-log-history-and-logins-from-multiple-ssh-keys-under-one- 꼭두각시 사용자 계정 /