Not yet 100% sure what is going on but I believe the double "@" is just a print message (it is not actually trying to connect to that host). The double comes from:
# net-ssh-multi-1.2.0/lib/net/ssh/multi/server.rb
#
192 rescue Net::SSH::AuthenticationFailed => error
193 raise Net::SSH::AuthenticationFailed.new("#{error.message}@dude#{host}")
194 end
I have so cleverly added the word "dude" here which we can see in my output:
user@ubuntu:~/chef-repo$ knife ssh 'name:ep1' uptime
WARNING: Failed to connect to ep1.site.com -- Net::SSH::AuthenticationFailed: Authentication failed for user user@ep1.site.com@dudeep1.site.com
Seems like some type of a bug but not our problem. I'm going to keep debugging but probably something along the lines of @Carolyn's suggestion https://stackoverflow.com/a/22439127/851145.
Update
Indeed the double "@" was a complete red herring. For me the solution was to simply specify the password with --ssh-password (I have not installed keys on the remote endpoint).
knife ssh 'name:ep1' uptime --ssh-password password
So probably an issue with key or password. -VV is your friend.