# Strange bug with Synchronize module?

**URL:** <https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560>\
**Category:** Ansible Project\
**Created:** [June 27, 2014, 1:02am UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560 "2014-06-27T01:02:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cameron\_Junge](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@Cameron\_Junge](https://forum.ansible.com/u/Cameron_Junge)\
**Post date:** [June 27, 2014, 1:02am UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560/1 "2014-06-27T01:02:30Z")

</div>

Hi,

I’m testing a playbook by running it against localhost, and am getting a really bizarre error from the syncronize module. I am connecting back to localhost via ssh with a deployer user, which has the correct permissions.

Playbook:

`

- name: Deploy to servers  
hosts: cron  
remote\_user: “{{ remote\_user }}”

roles:

- role: deploy

`

roles/deploy/main.yml

`

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [June 27, 2014, 12:45pm UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560/2 "2014-06-27T12:45:52Z")

</div>

What do you get when you run with “-vvvv” as it suggests?

---

<div class="post-metadata">

**Author:** ![Cameron\_Junge](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@Cameron\_Junge](https://forum.ansible.com/u/Cameron_Junge)\
**Post date:** [June 29, 2014, 8:22pm UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560/3 "2014-06-29T20:22:03Z")

</div>

Hi Michael,

I actually found that whether I run against localhost or not I get the same error.

verbose output is:

`  
TASK: [deploy | Copy source to server] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
\<127.0.0.1\> ESTABLISH CONNECTION FOR USER: www-data  
\<127.0.0.1\> EXEC [‘ssh’, ‘-C’, ‘-tt’, ‘-vvv’, ‘-o’, ‘ControlMaster=auto’, ‘-o’, ‘ControlPersist=60s’, ‘-o’, ‘ControlPath=/home/cameron/.ansible/cp/ansible-ssh-%h-%p-%r’, ‘-o’, ‘Port=22’, ‘-o’, ‘KbdInteractiveAuthentication=no’, ‘-o’, ‘PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey’, ‘-o’, ‘PasswordAuthentication=no’, ‘-o’, u’User=www-data’, ‘-o’, ‘ConnectTimeout=10’, ‘127.0.0.1’, “/bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-tmp-1404073222.49-59338707865389 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1404073222.49-59338707865389 && echo $HOME/.ansible/tmp/ansible-tmp-1404073222.49-59338707865389’”]  
fatal: [localhost] =\> SSH encountered an unknown error. The output was:  
OpenSSH\_6.2p2 Ubuntu-6ubuntu0.4, OpenSSL 1.0.1e 11 Feb 2013  
debug1: Reading configuration data /home/cameron/.ssh/config  
debug1: /home/cameron/.ssh/config line 25: Applying options for 127.0.0.1  
debug1: Reading configuration data /etc/ssh/ssh\_config  
debug1: /etc/ssh/ssh\_config line 19: Applying options for \*  
debug1: auto-mux: Trying existing master  
debug1: Control socket “/home/cameron/.ansible/cp/ansible-ssh-127.0.0.1-22-www-data” does not exist  
debug2: ssh\_connect: needpriv 0  
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 22.  
debug2: fd 3 setting O\_NONBLOCK  
debug1: fd 3 clearing O\_NONBLOCK  
debug1: Connection established.  
debug3: timeout: 10000 ms remain after connect  
debug3: Incorrect RSA1 identifier  
debug3: Could not load “/home/cameron/.ssh/id\_rsa” as a RSA1 public key  
debug1: identity file /home/cameron/.ssh/id\_rsa type 1  
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048  
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048  
debug1: identity file /home/cameron/.ssh/id\_rsa-cert type -1  
debug1: identity file /home/cameron/.ssh/id\_dsa type -1  
debug1: identity file /home/cameron/.ssh/id\_dsa-cert type -1  
debug1: identity file /home/cameron/.ssh/id\_ecdsa type -1  
debug1: identity file /home/cameron/.ssh/id\_ecdsa-cert type -1  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH\_6.2p2 Ubuntu-6ubuntu0.4  
debug1: Remote protocol version 2.0, remote software version OpenSSH\_6.2p2 Ubuntu-6ubuntu0.4  
debug1: match: OpenSSH\_6.2p2 Ubuntu-6ubuntu0.4 pat OpenSSH\*  
debug2: fd 3 setting O\_NONBLOCK  
debug3: load\_hostkeys: loading entries for host “127.0.0.1” from file “/home/cameron/.ssh/known\_hosts”  
debug3: load\_hostkeys: found key type ECDSA in file /home/cameron/.ssh/known\_hosts:22  
debug3: load\_hostkeys: loaded 1 keys  
debug3: order\_hostkeyalgs: prefer hostkeyalgs: [ecdsa-sha2-nistp256-cert-v01@openssh.com](mailto:ecdsa-sha2-nistp256-cert-v01@openssh.com),ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521  
debug1: SSH2\_MSG\_KEXINIT sent  
debug1: SSH2\_MSG\_KEXINIT received  
debug2: kex\_parse\_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1  
debug2: kex\_parse\_kexinit: [ecdsa-sha2-nistp256-cert-v01@openssh.com](mailto:ecdsa-sha2-nistp256-cert-v01@openssh.com),ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss  
debug2: kex\_parse\_kexinit: [aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com](mailto:aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com),aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
debug2: kex\_parse\_kexinit: [aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com](mailto:aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com),aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
debug2: kex\_parse\_kexinit: [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com),hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
debug2: kex\_parse\_kexinit: [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com),hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
debug2: kex\_parse\_kexinit: [zlib@openssh.com](mailto:zlib@openssh.com),zlib,none  
debug2: kex\_parse\_kexinit: [zlib@openssh.com](mailto:zlib@openssh.com),zlib,none  
debug2: kex\_parse\_kexinit:  
debug2: kex\_parse\_kexinit:  
debug2: kex\_parse\_kexinit: first\_kex\_follows 0  
debug2: kex\_parse\_kexinit: reserved 0  
debug2: kex\_parse\_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1  
debug2: kex\_parse\_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256  
debug2: kex\_parse\_kexinit: [aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com](mailto:aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com),aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
debug2: kex\_parse\_kexinit: [aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com](mailto:aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com),aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se  
debug2: kex\_parse\_kexinit: [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com),hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
debug2: kex\_parse\_kexinit: [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com),hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96  
debug2: kex\_parse\_kexinit: [none,zlib@openssh.com](mailto:none,zlib@openssh.com)  
debug2: kex\_parse\_kexinit: [none,zlib@openssh.com](mailto:none,zlib@openssh.com)  
debug2: kex\_parse\_kexinit:  
debug2: kex\_parse\_kexinit:  
debug2: kex\_parse\_kexinit: first\_kex\_follows 0  
debug2: kex\_parse\_kexinit: reserved 0  
debug2: mac\_setup: found [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com)  
debug1: kex: server-\>client aes128-ctr [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com) [zlib@openssh.com](mailto:zlib@openssh.com)  
debug2: mac\_setup: found [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com)  
debug1: kex: client-\>server aes128-ctr [hmac-md5-etm@openssh.com](mailto:hmac-md5-etm@openssh.com) [zlib@openssh.com](mailto:zlib@openssh.com)  
debug1: sending SSH2\_MSG\_KEX\_ECDH\_INIT  
debug1: expecting SSH2\_MSG\_KEX\_ECDH\_REPLY  
debug1: Server host key: ECDSA fc:1c:1d:c8:86:5f:a0:22:dd:2a:34:61:78:d9:67:a2  
debug3: load\_hostkeys: loading entries for host “127.0.0.1” from file “/home/cameron/.ssh/known\_hosts”  
debug3: load\_hostkeys: found key type ECDSA in file /home/cameron/.ssh/known\_hosts:22  
debug3: load\_hostkeys: loaded 1 keys  
debug1: Host ‘127.0.0.1’ is known and matches the ECDSA host key.  
debug1: Found key in /home/cameron/.ssh/known\_hosts:22  
debug1: ssh\_ecdsa\_verify: signature correct  
debug2: kex\_derive\_keys  
debug2: set\_newkeys: mode 1  
debug1: SSH2\_MSG\_NEWKEYS sent  
debug1: expecting SSH2\_MSG\_NEWKEYS  
debug2: set\_newkeys: mode 0  
debug1: SSH2\_MSG\_NEWKEYS received  
debug1: Roaming not allowed by server  
debug1: SSH2\_MSG\_SERVICE\_REQUEST sent  
debug2: service\_accept: ssh-userauth  
debug1: SSH2\_MSG\_SERVICE\_ACCEPT received  
debug2: key: /home/cameron/.ssh/id\_rsa (0x7fb66410c8c0),  
debug2: key: cameron@realestate.co.nz (0x7fb664111570),  
debug2: key: /home/cameron/.ssh/id\_dsa ((nil)),  
debug2: key: /home/cameron/.ssh/id\_ecdsa ((nil)),  
debug1: Authentications that can continue: publickey,password  
debug3: start over, passed a different list publickey,password  
debug3: preferred gssapi-with-mic,gssapi-keyex,hostbased,publickey  
debug3: authmethod\_lookup publickey  
debug3: remaining preferred: ,gssapi-keyex,hostbased,publickey  
debug3: authmethod\_is\_enabled publickey  
debug1: Next authentication method: publickey  
debug1: Offering RSA public key: /home/cameron/.ssh/id\_rsa  
debug3: send\_pubkey\_test  
debug2: we sent a publickey packet, wait for reply  
debug1: Authentications that can continue: publickey,password  
debug1: Offering RSA public key: cameron@desktop  
debug3: send\_pubkey\_test  
debug2: we sent a publickey packet, wait for reply  
debug1: Authentications that can continue: publickey,password  
debug1: Trying private key: /home/cameron/.ssh/id\_dsa  
debug3: no such identity: /home/cameron/.ssh/id\_dsa: No such file or directory  
debug1: Trying private key: /home/cameron/.ssh/id\_ecdsa  
debug3: no such identity: /home/cameron/.ssh/id\_ecdsa: No such file or directory  
debug2: we did not send a packet, disable method  
debug1: No more authentication methods to try.  
Permission denied (publickey,password).

FATAL: all hosts have already failed – aborting

`

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [June 29, 2014, 9:07pm UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560/4 "2014-06-29T21:07:37Z")

</div>

Looks like you are trying to SSH into yourself and this isn’t being allowed, which may imply localhost is in the “cron” group above.

Key line is the last one “Permission denied (publickey,password)”

---

<div class="post-metadata">

**Author:** ![Cameron\_Junge](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@Cameron\_Junge](https://forum.ansible.com/u/Cameron_Junge)\
**Post date:** [June 30, 2014, 1:17am UTC](https://forum.ansible.com/t/strange-bug-with-synchronize-module/15560/5 "2014-06-30T01:17:14Z")

</div>

Yeah, the user is using the default remote\_user of www-data, but the set remote\_user is deployer.

As in my first post, the task BEFORE the sync is connecting via deployer, but the syncronize task falls back to the default www-data user, which doesn’t have ssh access to my locahost.

This seems bizarre as it should pick up the same ssh user that is used in the task above.

If I change:

` `[localhost]` `localhost ansible\_ssh\_user=deployer ansible\_connection=local`

`

Then it works correctly, as it doesn’t use SSH any more… but then other tasks that rely on being run via the deployer user over SSH fail.

To give you a use-case that this seems to be preventing, I am trying to deploy a Symfony2 PHP application and the config/setup is being handled by Ansible. Running it against a remote machine has the same steps for config as is needed to set up a local copy of the app, so am trying to allow devs to set up a local copy, if they wish, without having to do any manual setup.

I’m kinda getting the feeling that the magic in the synchronize command is fighting against what I am trying to achieve on a local machine.
