EC2 인스턴스를 생성했습니다. 인터넷에 연결되어 있으며 'test_kp.pem'을 사용하여 ubuntu@ip로 SSH를 통해 연결할 수 있습니다.
새 사용자를 생성 하고 AWS EC2 콘솔에서 useradd test-user
새 키 쌍을 생성했습니다 .test-user-kp
home/test-user/.ssh 디렉토리와 .ssh/authorized_keys 파일을 만들었습니다.
명령을 실행 ssh-keygen -f test-user-kp.pem -y
하고 해당 내용을authorized_keys에 복사했습니다. 또한 .ssh 및 Authorized_keys 파일의 권한도 수정했습니다.
ssh -i test-user-kp.pem test-user@ip
이제 다음 메시지와 함께 명령이 실패하려고 합니다 .
test-user@ip: 권한이 거부되었습니다(공개키).
답변1
이에 대한 몇 가지 가능성이 있습니다.
귀하의 게시물을 읽으면서 test-user-pk.pem의 내용을 ~ssh/authorized_keys에 복사했는지 궁금합니다.. 이렇게 했다면 그게 문제입니다. 해당 파일은 개인 키입니다. 공개 키는 test-user-pk.pem.pub에서 찾을 수 있습니다. 개인 키의 형식이 공개 키와 상당히 다르고 ---로 시작하기 때문에 확인하기가 쉽습니다. --BEGIN OPENSSH PRIVATE KEY------ 여러 줄에 걸쳐 있습니다. 3개의 필드가 있는 하나의 긴 줄이 아니라 아마도 "ssh-rsa"로 시작하고 사용자 이름@hostname으로 끝나며 공개 키가 중간에 있습니다.
그렇지 않으면 -
일반적으로 SSH에 전달된 "-v" 플래그를 사용하여 사용자로 SSH를 시도하여 클라이언트가 보고 있는 내용을 기록하고, 이 작업을 수행하는 동안 서버 로그 파일도 살펴보세요.
대체 포트의 서버에서 두 번째 sshd 인스턴스를 시작하고 분리하지 않음으로써 한 단계 더 나아갈 수 있으며 연결을 시도할 때 어떤 일이 발생하는지 확인할 수 있습니다.
살펴볼 몇 가지 구체적인 가능성 -
SeLinux가 인스턴스를 중단합니까(예: 파일 권한 또는 유사)? 나는 이것을 전에 본 적이 있는데 그것은 고통 스럽습니다. audit.log 파일은 이것이 사실인지를 나타내며, 만약 그렇다면 selinux를 일시적으로 비활성화하면 이 문제를 배제하는 데 도움이 될 수 있습니다. (이전에 본 적이 있지만 우분투 상자에서는 본 적이 없습니다)
/etc/ssh/sshd_conf에 협상을 방해하는 내용이 있습니다. 예를 들어 AllowUsers 목록이 있습니다.
사용자 홈 디렉토리의 권한 문제일 수 있습니까?
당신이 열쇠를 추가하는 것처럼 어리석은 일이 될 수 있습니까?
답변2
루트로 'authorized_keys'를 만들었습니다. 이 문제를 해결하기 위해 나는 달렸다
sudo chown 테스트 사용자 Authorized_keys