Eu tenho uma instância do EC2 em funcionamento com vários usuários, alguns dos quais são chrooted para seus diretórios home, alguns dos quais são somente FTP e não têm acesso ao shell, etc ... ec2-user é a conta admin principal, embora outros também têm acesso root e logins completos do ssh. Tudo funciona muito bem na instância em execução.
Eu posso tirar uma imagem de instantâneo da instância e lançar novas instâncias a partir do instantâneo. Não importa o que eu selecione em termos do par de chaves associado à nova instância (use o par de chaves original para ec2-user, crie um novo par de chaves ou não use nenhum par de chaves), assim que a nova instância for iniciada e executada, não ssh no servidor usando o usuário ec2 ou qualquer outro usuário habilitado para ssh. ftp funciona bem, no entanto.
Os grupos de segurança não são um problema, até onde eu sei, o tráfego de entrada é permitido (e é o mesmo grupo de segurança que a instância original, de qualquer forma).
O / var / log / secure das tentativas de login me dá:
sshd[1739]: debug1: userauth-request for user ec2-user service ssh-connection method none
sshd[1739]: debug1: attempt 0 failures 0
sshd[1738]: debug1: user ec2-user does not match group list sftponly at line 142
sshd[1738]: debug1: PAM: initializing for "ec2-user"
sshd[1738]: debug1: PAM: setting PAM_RHOST to "..."
sshd[1738]: debug1: PAM: setting PAM_TTY to "ssh"
sshd[1739]: debug1: userauth-request for user ec2-user service ssh-connection method publickey
sshd[1739]: debug1: attempt 1 failures 0
sshd[1738]: debug1: temporarily_use_uid: 500/500 (e=0/0)
sshd[1738]: debug1: trying public key file /etc/ssh/keys/ec2-user
sshd[1738]: debug1: restore_uid: 0/0
sshd[1738]: debug1: temporarily_use_uid: 500/500 (e=0/0)
sshd[1738]: debug1: trying public key file /etc/ssh/keys/ec2-user
sshd[1738]: debug1: restore_uid: 0/0
sshd[1738]: Failed publickey for ec2-user from xx.xx.xx.xx port 60597 ssh2
sshd[1739]: Connection closed by xx.xx.xx.xx
sshd[1739]: debug1: do_cleanup
É o mesmo erro para todos os usuários habilitados para ssh. Como você pode ver no log, eu mudei meu sshd_config na instância original para que ele procure pelas chaves públicas na pasta / etc / ssh / keys.
Eu montei as instâncias com falha como volumes na instância de trabalho. As chaves estão na pasta, com as mesmas permissões e os mesmos valores de chave, tudo conforme o esperado. Aqui está ls -al da pasta de chaves (.) E do arquivo ec2-user.
drwxr-xr-x. 2 root root 4096 Dec 1 16:59 .
-rw-------. 1 ec2-user ec2-user 388 Jul 25 13:27 ec2-user
O que pode estar causando esse problema? Eu gostaria de resolver o problema no momento de salvar e lançar um instantâneo ou de configurar a instância original, mas não montar a instância problemática e fazer alterações manuais para que ela funcione, mas não corrija o problema maior.
ATUALIZAÇÃO:
Aqui estão as configurações ativas no arquivo sshd_config:
#...
Protocol 2
#...
SyslogFacility AUTHPRIV
LogLevel DEBUG
#...
AuthorizedKeysFile /etc/ssh/keys/%u
#...
PasswordAuthentication no
#...
ChallengeResponseAuthentication no
#...
GSSAPIAuthentication yes
#...
GSSAPICleanupCredentials yes
#...
UsePAM yes
#...
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
#...
X11Forwarding yes
#...
Subsystem sftp internal-sftp -f AUTH -l VERBOSE
#...
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l VERBOSE -f AUTH
#...