Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top
$ curl -T "index.html" -k --ftp-ssl -u "MYUSER@MYDOMAIN.COM" MYDOMAIN.COM
Enter host password for user 'MYUSER@MYDOMAIN.COM':

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 57173    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0

<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for the URL /index.html.</p>
<address>Apache/2.2.16 Server at MYDOMAIN.COM Port 80</address>
100 57480  100   307  100 57173    284  52902  0:00:01  0:00:01 --:--:-- 53633

Also posted on Stack Overflow

share|improve this question
Cross-posting is a no-no. – John T Jan 11 '11 at 9:58

The problem is not @ (you don't need to escape it), it's that you haven't told curl to use FTP in the first place. Note that you're receiving a HTTP response from a HTTP server.

cURL takes URLs, and if it encounters a bare it adds http:// automatically. Use curl ... ftps:// (which enables --ftp-ssl automatically, by the way).

share|improve this answer
up vote 1 down vote accepted

i sniffed it with wireshark:


and this one uses ftps! :P it works perfectly! solved :)

thank you!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.