# SFTP with CURLSMBS and Public/Private Key Authorization

**URL:** <https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636>\
**Category:** Extras\
**Created:** [January 21, 2021, 6:19pm UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636 "2021-01-21T18:19:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Julia\_Truchsess](https://forum.xojo.com/user_avatar/forum.xojo.com/julia_truchsess/32/499_2.png) [@Julia\_Truchsess](https://forum.xojo.com/u/Julia_Truchsess)\
**Post date:** [January 21, 2021, 6:19pm UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/1 "2021-01-21T18:19:27Z")

</div>

My application has used CURLSMBS for plain vanilla FTP uploads for ages, but now the client has changed to SFTP using public-private key authorization. The SFTP example in the MBS documentation shows only simple username/password authorization and I don’t know how/where to set all the options and constants for public-private key authorization and SSH. The customer has supplied me with a puTTY ppk file which appears to contain public and private keys, as well as a “Private-MAC”.

Can someone provide or point me to a complete example for SFTP uploads using CURLSMBS and SSH public-private key authorization?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [January 21, 2021, 6:24pm UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/2 "2021-01-21T18:24:53Z")

</div>

You need to convert the ppl file to other format like pkcs12 or pem file.

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [January 21, 2021, 6:25pm UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/3 "2021-01-21T18:25:25Z")

</div>

and set properties for curl, e.g. from examples:

```
Dim c As New CURLSMBS

c.OptionSSHPrivateKeyfile = "/Users/test/.ssh/id_rsa"
c.OptionSSHPublicKeyfile = "/Users/test/.ssh/id_rsa.pub"
c.OptionUsername = "test"
```

---

<div class="post-metadata">

**Author:** ![Julia\_Truchsess](https://forum.xojo.com/user_avatar/forum.xojo.com/julia_truchsess/32/499_2.png) [@Julia\_Truchsess](https://forum.xojo.com/u/Julia_Truchsess)\
**Post date:** [January 21, 2021, 7:59pm UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/4 "2021-01-21T19:59:05Z")

</div>

> [@Christian\_Schmitz](#):
>
> pkcs12

Thanks, Christian, I will give it a try.

---

<div class="post-metadata">

**Author:** ![Julia\_Truchsess](https://forum.xojo.com/user_avatar/forum.xojo.com/julia_truchsess/32/499_2.png) [@Julia\_Truchsess](https://forum.xojo.com/u/Julia_Truchsess)\
**Post date:** [January 23, 2021, 12:05am UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/5 "2021-01-23T00:05:52Z")

</div>

Working! 😃

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [January 23, 2021, 9:11am UTC](https://forum.xojo.com/t/sftp-with-curlsmbs-and-public-private-key-authorization/60636/6 "2021-01-23T09:11:20Z")

</div>

Excellent 🙂
