업데이트를 사용한 후 계정의 비밀번호를 입력하려고 하면 인증이 실패합니다.음. 내 인증은 깨졌지만 다른 모든 것은 정상적으로 작동합니다.
이러한 업데이트는 주로 기존 AWS 소스에서 제공되지만 외부 소스도 포함했습니다. 무슨 일이 일어나고 있는지, 문제를 해결하고 변경 사항을 롤백할 수 있는 방법이 있는지 알고 싶습니다.
여전히 ssh를 사용하여(pem 파일을 통해) AWS EC2 인스턴스에 로그인할 수 있지만 이것이 제가 할 수 있는 전부입니다. 이전 비밀번호를 사용하여 ssh root@ipaddress를 통해 로그인할 수 없습니다. 그것을로 바꾸다보안 자격 증명 페이지->비밀번호도움이 되지 않습니다. 비슷한 것을 찾았어요질문.
내 거 /var/log/secure
:
sshd[1184]: Server listening on 0.0.0.0 port 22.
sshd[1184]: Server listening on :: port 22.
runuser: pam_unix(runuser:session): session opened for user mongod by (uid=0)
runuser: pam_unix(runuser:session): session closed for user mongod
sshd[1576]: Accepted publickey for ec2-user from xxx.xxx.xxx.xxx port xxxxx ssh2: RSA xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
sshd[1576]: pam_unix(sshd:session): session opened for user ec2-user by (uid=0)
sudo: pam_unix(sudo:auth): authentication failure; logname=ec2-user uid=500 euid=0 tty=/dev/pts/0 ruser=ec2-user rhost= user=ec2-user
sudo: ec2-user : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/ec2-user ; USER=root ; COMMAND=/bin/su -
su: pam_unix(su:auth): authentication failure; logname=ec2-user uid=500 euid=0 tty=pts/0 ruser=ec2-user rhost= user=root
sudo: pam_unix(sudo:auth): authentication failure; logname=ec2-user uid=500 euid=0 tty=/dev/pts/0 ruser=ec2-user rhost= user=ec2-user
sudo: ec2-user : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/ec2-user ; USER=root ; COMMAND=/bin/ls
sshd[1184]: Received signal 15; terminating.
sshd[1576]: pam_unix(sshd:session): session closed for user c2-user
내 거 /etc/ssh/sshd_config
:
# $OpenBSD: ssh_config,v 1.28 2013/09/16 11:35:43 sthen Exp $
# This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
# Host *
# ForwardAgent no
# ForwardX11 no
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# Port 22
# Protocol 2,1
# Cipher 3des
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
#
# Uncomment this if you want to use .local domain
# Host *.local
# CheckHostIP no
Host *
GSSAPIAuthentication yes
# If this option is set to yes then remote X11 clients will have full access
# to the original X11 display. As virtually no X11 client supports the untrusted
# mode correctly we set this to yes.
ForwardX11Trusted yes
# Send locale-related environment variables
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
# Don't show actual hostnames in .ssh/known_hosts
HashKnownHosts yes
호출 결과 ls -l /etc/passwd /etc/shadow /etc/sudoers
는 다음과 같습니다.
-rw-r--r-- 1 root root 1402 Oct 7 10:58 /etc/passwd
---------- 1 root root 838 Oct 7 10:58 /etc/shadow
-r--r----- 1 root wheel 2299 Oct 7 10:58 /etc/sudoers
내 OS 구성:
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.09"
PRETTY_NAME="Amazon Linux AMI 2015.09"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.09:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.09
명령 aws ec2 get-password-data --instance-id XXXXXXXXXX
결과(Windows가 아닌 인스턴스에 적용되는지 확실하지 않음):
{
"InstanceId": "XXXXXXXXXX",
"Timestamp": "2015-10-12T21:02:51.000Z",
"PasswordData": ""
}
답변1
결국 새 인스턴스를 시작하고 기존 인스턴스에서 볼륨을 마운트하여 루트 계정에 대한 손실된 액세스 권한을 복구했습니다.
sudo mount /dev/sdf /mnt/my-data
sudo vi /mnt/my-data/etc/ssh/sshd_config
다음을 변경한 후 :
PermitRootLogin yes
#PermitRootLogin forced-commands-only
그런 다음 볼륨을 원래 인스턴스에 다시 넣고 SSH를 통해 루트로 로그인했습니다.
sudo ssh -i /key.pem [email protected]
루트로 로그인한 상태에서 passwd username
각 사용자의 비밀번호 변경을 실행합니다.