1つのIPアドレスからのみルートログインを許可する


14

centos5があります。

特定のIPアドレスからのみrootユーザーでvpsサーバーにログインできる方法はありますか?

私は秘密鍵を使用してsshdにログインできることを読みました。しかし、問題はすべてのWebistesにSFTPを使用しているため、IT以外のユーザーがSFTPでログインするためにキーを使用したくないことです。

または、rootのみがシェルにログインするためにキーを使用できる方法がありますが、他のユーザーは通常のパスワードです

centos  root  ssh 

回答:


15

より良い方法は、Matchキーワードを使用することです。

Match Host myworkstation
        PermitRootLogin yes

または

Match Address 192.168.1.100
        PermitRootLogin yes

そうすれば、PermitRootLoginを「no」に設定したままにできますが、ワークステーションからルートとしてログインできます。

これは、たとえば、ルートが2つのホスト間でデータをrsyncできるようにするためにも使用できます。


あなたのrsyncの例は、まさにこの質問をグーグルで調べたユースケースです。ありがとうございました!;)
1

これは、送信元IPアドレスの逆DNSを使用した場合にのみ機能することに注意してください。(少なくとも私にとっては唯一の方法でした)
mveroone

9

一般に、最初に非特権ユーザーとしてログインし、次に 'su-'または 'sudo'を使用してルート特権を取得することをお勧めしますが、...

〜root / .ssh / authorized_keysのキーに常にIP制限をかけることができます:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== yourkey@yourhost.com

これにより、sshは192.168.1.100からのみyourkey@yourhost.comキーを使用できます。


同意しましたが、sftp、rsync、sshfsのようなことを行うのはより複雑です...
mveroone

3

使用する:

パスワードなしのPermitRootLogin

/ etc / ssh / sshd_config。ルートを除くすべてのユーザーは、パスワードログインを使用できます。ルートはログインにキーを使用する必要があります。


このスリューションは機能しますか??

維持するすべてのサーバーでその設定を使用します。ルートブルートフォース/ dict攻撃を防ぎます。unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr

git pullただし、これは壊れているようです:/ etc / ssh / ssh_config:line 68:Bad configuration option:permitrootlogin
geoidesic

また、PermitRootLoginが表示されないman ssh_config
ジオイデシック

また簡単にオーバーライドssh -o PreferredAuthentications=password
ジオイデシック

2

編集sshd_config(通常は/etc/ssh)して、次のディレクティブを追加または変更します

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

その後、デーモンを再起動します

  service ssh restart

OPがを使用する場合AllowUsers、アクセスしたいすべてのユーザーを指定する必要があると思います。この例では、rootがsshを介した認証のみを許可します。
EEAA

1
はい、これは意図的なものです。すべてのユーザーを許可するには、*@thehosttoallow実際に任意のユーザをしましょう。
リングØ

また簡単にオーバーライドssh -o PreferredAuthentications=password
ジオイデシック

0

まず、ユーザーがキー認証を使用できないようにしたいのはなぜですか?それは私には意味がありません。

第二に、sshを介したrootログインを許可しないでください。それをしないでください-そうする必要がある正当な理由はありません。それはそこにあるすべてのベストプラクティスに反し、正当な理由のためです。特定のファイルの読み取り/書き込み権限を付与する必要がある場合は、標準のLinuxファイルシステムの権限を使用して許可する必要があります。よりきめ細かいアクセス制御が必要な場合は、Linux ACLシステムを調べてください。


ルートログインを無効にし、どのユーザーもメインの設定ファイルにアクセスできない場合はどうなりますか。私はルートを経由してログインすることができないよう、私はロックされています

1
sshを介してrootログインを無効にしても、rootはコンソールを介してサインインできます。また、sudoを介して通常のユーザーにroot-squeパーミッションを付与するオプションも常にあります。これはsftpでは機能しませんが、問題を修正する必要がある場合のフェイルバックとしては問題なく機能し、許可を与えるための好ましい方法です。
EEAA

1
@ErikA 一意のホストrootから許可することは安全ではありません。数年前のアクセスに対する傾向がありました(口内炎は一般的でした)が、1つのホストにのみ経由を許可しても、それほど危険ではありません。roottelnetsshrootssh
リングØ10年

確かに、おそらく「安全」かもしれませんが、私はまだそれが貧弱なアイデアだと主張します。これは主に、人々がルートアクセスを取得する簡単な方法を与えられると、より安全でより適切なアクセス方法(sudo)を使用するのではなく、それを使用するという事実のためです。
EEAA

2
著者の質問を考えると、rootユーザーを介して管理タスクを実行したいと考えることができます。rootこの場合、1つのホストからのみ直接アクセスを許可するのが合理的な代替策です。
リングØ10年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.