Ubuntuクラウドバージョンでは、ssh経由で「rootログインなし」がどのように適用されますか?


8

rootログインを拒否するubuntuクラウドバージョンのデフォルト設定を微調整しようとしています。

このようなマシンに接続しようとすると、次のようになります。

maxim@maxim-desktop:~/workspace/integration/deployengine$ ssh root@ec2-204-236-252-95.compute-1.amazonaws.com
The authenticity of host 'ec2-204-236-252-95.compute-1.amazonaws.com (204.236.252.95)' can't be established.
RSA key fingerprint is 3f:96:f4:b3:b9:4b:4f:21:5f:00:38:2a:bb:41:19:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-204-236-252-95.compute-1.amazonaws.com' (RSA) to the list of known hosts.
Please login as the ubuntu user rather than root user.

Connection to ec2-204-236-252-95.compute-1.amazonaws.com closed.

sshによるルートブロッキングが構成されている構成ファイルと、出力されたメッセージを変更する方法を教えてください。

回答:


14

古い質問ですが、誰も実際にはあなたに答えていないので、同じ質問がありました。この構成はどこから来たのですか?

これはcloudinitに由来し、正確にcc_ssh.py/usr/lib/python2.7/dist-packages/cloudinit/config

これは、ファイルに直接依存しています/etc/cloud/cloud.cfg。あなたは行を見つけますdisable_root: true

ユーザーデータを調整して行を追加することで、それを上書きできるはずdisable_root: falseです。クラウドプロバイダーは、ユーザーデータを構成可能にする必要があります。


9
cloud-initが行うことは/root/.ssh/authorized_keys、フォームに行を追加する こと no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10" ssh-rsa xxxxxxです。したがってPermitRootLogin yes、sshコマンドが正常に動作するシェルを取得できない場合でも。
RubenLaguna 2015年

5

あなたのsshd設定が持っていると仮定しますPermitRootLogin yes

sudo grep "login as the ubuntu user" /root/.??*

ただし、マイクスコットが提供したリンクは、よく読んで注意することを強くお勧めします。

ルートSSH

最後に、Ubuntuのセキュリティ標準を回避し、sshとrsyncをrootとして許可するという古い慣行に戻したい場合は、次のコマンドで公式のUbuntuイメージの新しいインスタンス用に開きます。

ssh -i KEYPAIR.pem ubuntu@HOSTNAME 'sudo cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/' これはお勧めできませんが、上記のsudoプラクティスにアップグレードできるまで、既存のEC2自動化コードを引き続き機能させる方法となる場合があります。

SSHが有効になっている公開サーバーは、犯罪ボットネットからのrootログイン試行によって昼夜を問わず継続的に攻撃されるため、私はroot SSHログインを無効にしています。

他の場所でドキュメントが警告する

Rootアカウントを有効にする必要はほとんどありません。Ubuntuシステムの管理者として行う必要のあるほとんどすべてのことは、sudoまたはgksudoを介して行うことができます。永続的なRootログインが本当に必要な場合は、次のコマンドを使用してRootログインシェルをシミュレートするのが最善の方法です...

sudo -i


1
ありがとう。cat /root/.ssh/authorized_keysには、bashシェルの代わりにエコーを開く通知が含まれています。なぜ自分で見つけられなかったのか想像できません。ありがとうございました。
Maxim Veksler


0

/ etc / ssh / sshd_configを確認します。オプションは「Permit root login」と呼ばれます

 PermitRootLogin
         Specifies whether root can log in using ssh(1).  The argument
         must be “yes”, “without-password”, “forced-commands-only”, or
         “no”.

より便利な設定の1つは、「-passwordなし」です。これは、ルートでログインできるようにしますが、公開鍵認証を使用する場合のみです。詳細はman sshd_config :)


すべてのEC2 Linuxインスタンスでssh証明書のみの認証が有効になっています。これが、マシンへのリモートアクセスを取得する唯一の方法です。明らかに、私はノードにログインできます。そうしないと、上記のメッセージが印刷されません。また注意してください:cat / etc / ssh / sshd_config | grep -i root PermitRootLogin yes
Maxim Veksler
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.