2017-08-15 45 views
0

我知道這個問題已經被問了幾次不行,不過,我仍然有問題W¯¯這裏用戶發佈使用參考ansible doc文章ansible密碼設置不適用於ssh會話。ansible創建的密碼對用戶的SSH會話

我知道密碼必須是散列而不是純文本。我試過以下,但仍然無法SSH到遠程主機。

--- 
- hosts: all #modify your server list 
    remote_user: root 
    vars: 
    #created using the sha-512 
    password: $6$i77J0vHI5M$/cWpyM72mGY5h8V6PW1KTg3Tjh6VH5jtdBTm2nLwjxKzW/iR2zbzm2X.eUYT833xEDaco5NxZgY.obtDNhPNz0 
    tasks: 
    - include_vars: users.yml 
    - name: Creating users to Jump Server 
    user: name="{{ item.username}}" password= "{{ password }}" state=present 
    with_items: "{{ users }}" 

    - name: Placing SSH Key to Authorized Key 
    #please note that this code assumes as if the public-private key pair is generated, all public users (created above) have public keys copied at one place i.e. keyfiles directory for the ease 
    authorized_key: user="{{item.username}}" key="{{ lookup('file', './keyfiles/authorized_keys.{{ item.username}}.pub')}}" 
    with_items: "{{ users }}" 

/etc/shadow文件看起來像這樣上的所有主機

[email protected]:/home# cat /etc/shadow | grep sam 
sam::17393:0:99999:7::: 

我在做什麼錯誤或丟失?如果有人可以提出一些看法,我會感激。提前致謝。

回答

0

我已經想通了。有一個小的語法錯誤。嘗試密碼變量爲password={{ password }}而不是將引號標記爲

現在/etc/shadow文件具有與在變量中設置相同的散列密碼。

[email protected]:/home# cat /etc/shadow | grep sam 
sam:$6$i77J0vHI5M$/cWpyM72mGY5h8V6PW1KTg3Tjh6VH5jtdBTm2nLwjxKzW/iR2zbzm2X.eUYT833xEDaco5NxZgY.obtDNhPNz0:17393:0:99999:7::: 

希望這也能幫助別人。

+0

行情沒'亂七八糟的東西,這是你放在'='之後的空間,那是罪魁禍首。 – techraf

1

你也可以用你的密碼變量,而不是直接hash使用password_hash過濾器:

您的密碼變量:

password: "my_secure_password" 

然後修改您的用戶創建的任務:

- name: Creating users to Jump Server 
    user: 
     name: "{{ item.username}}" 
     password: "{{ password | password_hash('sha512') }}" 
     state: present 
    with_items: "{{ users }}" 
+0

嗨@Arbab,謝謝你的帖子。我想問一個問題,就是''password = {{some_variable}}'和'password =「{{some_variable}}」'之間用引號引起的區別是什麼?我的代碼上面沒有引號。 – rulebreaker4

+0

@ rulebreaker4我已將任務更改爲純YAML格式,嘗試以上述格式運行任務,但不包含引號,您將看到ansible會生成的錯誤。 –

相關問題