ノード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
わかりました。解決しました。使用する名前はホスト名ではなく、デスクトップへのアクセスに使用するユーザー名です。またはrootを使用できますが、この場合はsshd_configで有効にする必要があります。はい john@ip アドレス