タイトルとしての質問。これはなぜですか、私はsshコマンドを使用しました。私は何を間違えていますか?
Klausが提案したようにec2-user
としてログインします:
ssh -i key.pem ec2-user@Host
...そして、Sudo
を使用してコマンドを実行します。たとえば、rootが所有し、root権限が必要な/etc/hosts
ファイルを編集するには:Sudo nano /etc/hosts
。
または、Sudo su
を実行してroot
ユーザーになります。
デフォルトでは、root
ユーザーはログインできませんが、他のユーザーが示すようにec2-user
を使用できます。
ec2-user
でログインしたら、root
に切り替えてSSH設定を変更します。
実行するrootユーザーになるには:
Sudo su -
SSHデーモン構成ファイル/etc/ssh/sshd_config
を編集します。 viを使用して、PermitRootLogin
エントリを次のものに置き換えます。
PermitRootLogin without-password
次を実行して、SSHデーモン構成をリロードします。
/etc/init.d/sshd reload
秘密鍵でログインするとコマンドが実行されるため、メッセージPlease login as the ec2-user user rather than root user.
が表示されます。そのコマンドを削除するには、~/.ssh/authorized_keys
ファイルを編集し、command
オプションを削除します。行はキータイプ(たとえば、ssh-rsa)で始まる必要があります。
(*)自己責任で行ってください。設定を変更した後にログインできない場合に備えて、常にコンソールを開いたままにしておくことをお勧めします。
参考のために、manページを読むことができます:
man sshd_config
man sshd
Amazon ec2でhadoopクラスターをセットアップするときに、同様の問題が発生しました。
ヘッドノードには、各ワーカー/スレーブノードへのルートsshアクセスが必要です。各スレーブノードのIPアドレス、プライベートアドレス、およびエイリアス名を/etc/hosts/
ファイルに追加して、接続のエイリアスを作成しました。 (コマンドecho -e "`hostname -i`\t`hostname -f`\talias-name"
を実行してそのデータを取得します。ここで、alias-name
は各ノードと呼ばれるものです(たとえば[head
またはn1
)。すべてのノードの/etc/hosts
ファイル内のノード。
私が遭遇した問題は、ヘッドノードで最初のスレーブノードにsshするためにssh n1を入力すると、同じエラーメッセージが表示されることです。Please login as the use "ec2-user" rather than the user "root".
ですから、調査を行った後、修正方法を見つけました。それ。
最初:
su -
をルートに移動します。ここでvi /etc/ssh/sshd_config
と_PermitRootLogin yes
行のコメントを外します。service sshd stop
、次にservice sshd start
と入力して、sshデーモンを再起動します。秒:
vi /root/.ssh/authorized_keys
を実行しますssh-rsa.
までのすべてをコメントアウトします#
...の前に、ファイルのコンテンツの先頭にno-port-forwarding
を置き、ssh-rsa
でEnterキーを押して次へ移動します行(この方法では、バックトラックしたい場合に何かを削除する必要はありません)。これで、エラーメッセージが表示されることなく、rootにログインできるはずです。
また、クラスター設定にエイリアスを使用している場合;各ノードで同じ手順を繰り返します。最初にec2-userを使用してsshし、次に手順に従います。 IPアドレス、プライベートアドレス、およびエイリアス名情報を/etc/hosts
ファイルに追加すると、ssh n1
などのエイリアス名を使用して各ノードのルートにsshできるようになります。
私が従ったチュートリアルはこちらです: https://www.youtube.com/watch?v=xrxQXfE7t9A
ただし、rootログインの問題については説明しませんでした。
お役に立てば幸いです!それは私のために働いた。
*私はセキュリティを懸念していることに留意してください。これは単に練習/開発セットアップです。
別のユーザー名でログインするよう求めているだけだと思います。 ec2-user
というユーザーがいますか?もしそうなら、代わりにこれを試してください:
ssh -i mykey.pem [email protected]
解決しました!ルートキーファイルとユーザーキーファイルを比較してみてください)
diff /root/.ssh/authorized_keys /home/user/.ssh/authorized_keys
...そして見る
Windows PuTTYクライアントを介して「root」としてEC2インスタンスにアクセスしようとしたときに、同じ問題に直面しました。これが問題の解決方法です。
SSH構成ファイルにアクセスして編集し、rootログインおよびpassword認証を許可します。
以下のコマンドを入力してssh configを開きます
Sudo vi /etc/ssh/sshd_config
Viを使用してSSH構成ファイルを以下のように編集します viエディターの使用方法
PermitRootLogin yes(存在する場合は懇願で#を削除)
PasswordAuthentication yes
SSHを再起動します
Sudo /etc/init.d/sshd restart
ルートパスワードの変更/設定
Sudo passwd root
新しいパスワードを入力して再入力します(少なくとも8文字)
現在のセッションを終了してPuTTYを閉じます
exit
/ etc/ssh/sshd_configを編集し、これが設定されていることを確認します。
PasswordAuthenticationはい
次に、SSHをリロードします。
systemctl reload sshd.service
Ec2-user以外のユーザーとしてログインできるようになりました。