노드 A, B, C의 3개 노드가 있습니다. A는 SSH를 통해 B와 C에 연결하려고 합니다. B와 C는 동일한 서버입니다. A는 B에 연결할 수 있지만 C에는 연결할 수 없습니다.
ssh user@node
내가 본 오류는 다음과 같습니다.
Permission denied (publickey).
나는 시도했다:
- 소유권은 ida_rsa 및authorized_keys 파일에 올바르게 설정되어 있으며 서버 B와 C에서 동일합니다.
- 두 노드의 /etc/ssh/sshd_config 파일도 동일합니다.
- 포트 22를 통해 노드 B와 C에 연결할 수 있으므로
telnet
방화벽 문제도 아닙니다.
내가 놓친 게 무엇입니까? 또 무엇을 확인해야 합니까?
지금까지는 노드 C에 연결하는 것을 금지하는 것이 무엇인지 알 수 없습니다.
답변1
이 주제를 우연히 발견한 사람을 위해 문제의 원인을 찾았습니다. 이 솔루션을 제안하는 토론을 찾지 못했기 때문에 이 글을 씁니다.
- sshd_config 파일에서는 사용자에게 비밀번호를 묻는 메시지가 표시되지 않습니다.
PasswordAuthentication no
- 그러나 사용자는 일반적으로 노드 C에서는 비밀번호로 보호되지만 노드 B에서는 그렇지 않습니다.
노드 B:
# passwd --status user
user LK 2017-09-27 0 99999 7 -1 (Empty password.)
C 노드:
# passwd --status user
user LK 2019-04-03 0 99999 7 -1 (Password locked.)
해결책:
# passwd -d user
Removing password for user user.
passwd: Success
지금은 잘 작동합니다 ssh
.
파일을 확인하고 문제를 발견했습니다 /var/log/messages
.
Connection from X.X.X.X port 60408 on Y.Y.Y.Y port 22
User user not allowed because account is locked
input_userauth_request: invalid user user [preauth]
Connection closed by X.X.X.X port 60408 [preauth]
답변2
알겠습니다. 해결했습니다. 사용할 이름은 호스트 이름이 아니라 데스크톱에 액세스하는 데 사용하는 사용자 이름입니다. 또는 루트를 사용할 수 있지만 이 경우 sshd_config에서 활성화해야 합니다. 예 john@ip 주소