2017-02-18 2 views
1

いくつかのリモートDebianサーバの配置を自動化する必要があります。これらのサーバーにはrootアカウントのみが付属しています。 rootとしてログインする必要があるのは、セットアッププロセスの間だけです。その後のログインは、設定プロセス中に作成される通常のユーザーアカウントを使用して行われます。サーバーのセットアップ中にルートacountを切り替えるにはどうすればいいですか?

ただし、セットアッププロセス中にPermitRootLogin noPasswordAuthentication no/etc/ssh/sshd_configに設定する必要があります。それから私はservice sshd restartをやっています。これにより、rootアカウントを使用してサーバにログインしたため、ssh接続が停止します。

私の質問は:どのように私は、rootアカウントにansible SSHを作る、通常のユーザーアカウントを作成し、PermitRootLogin noPasswordAuthentication noを設定し、その後、通常のユーザーアカウントを使用してサーバにSSHと残りのセットアップ作業を行うのですか?

設定プロセスに欠陥がある可能性があります。私は提案を感謝します。

答えて

0

標準のユーザーアカウントを作ってsudoersに追加したいと思うかもしれません。あなたは標準ユーザーと一緒に実行することができ、rootとして実行するコマンドが必要な場合は、コマンドに接頭辞sudoを付けてください。

私はあなたが実際に手動設定の前提条件を必要とせずに、Ansibleで全体のセットアッププロセスを管理することができます展開ユーザー http://www.altmake.com/2013/03/06/secure-lamp-setup-on-amazon-linux-ami/

1

の設定に関する記事を書きました。

興味深いことに、set_factを使用して、ansible_useransible_passwordをオンザフライで変更できます。

- name: "Switch remote user on the fly" 
    hosts: my_new_hosts 
    vars: 
    reg_ansible_user: "regular_user" 
    reg_ansible_password: "secret_pw" 
    gather_facts: false 
    become: false 
    tasks: 

    - name: "(before) check login user" 
    command: whoami 
    register: result_before 

    - debug: msg="(before) whoami={{ result_before.stdout }}" 

    - name: "change ansible_user and ansible_password" 
    set_fact: 
     ansible_user: "{{ reg_ansible_user }}" 
     ansible_password: "{{ reg_ansible_password }}" 

    - name: "(after) check login user" 
    command: whoami 
    register: result_after 

    - debug: msg="(after) whoami={{ result_after.stdout }}" 

さらに、あなたは完全に設定の変更を有効にするためにsshdを再起動する必要はありませんし、既存のSSH接続が開いたままになります:set_fact後に実行残りのタスクは、新しい資格情報を使用して実行されます。 Per sshd(8)マンページの: sshd rereads its configuration file when it receives a hangup signal, SIGHUP...

だから、あなたのセットアップの脚本のようなものが考えられます。

  1. rootアカウントで最初にログイン
  2. 定期的にユーザーを作成し、自分のパスワードを設定したりする通常のユーザーを許可するようにauthorized_keys
  3. のconfigure sudoersファイルを設定ルートとしてコマンドを実行
  4. set_factを使用してプレイバックの残りの部分にそのアカウントに切り替えます(ルートからregに切り替えたので、この後のタスクにはbecome: trueを使用することを忘れないでください)。 ularユーザー。あなたもkill -HUP<sshd_pid>
  5. ログインが
を動作するか失敗する、バックルートに ansible_userを設定することで、検証を実行
  • 変更のsshd設定
  • )ルートをロックアウトする前に、テストsudoコマンドを実行してみてください
    関連する問題