---
name: "CURLOPT_SSH_KNOWNHOSTS"
section: "3"
platform: "macos"
package: "curl"
version: "166.0.0.0.1"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/CURLOPT_SSH_KNOWNHOSTS"
---

# CURLOPT\_SSH\_KNOWNHOSTS(3)

filename holding the SSH known hosts

## NAME

CURLOPT\_SSH\_KNOWNHOSTS - filename holding the SSH known hosts

## SYNOPSIS

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_KNOWNHOSTS, char *fname);
```

## DESCRIPTION

Pass a pointer to a null-terminated string holding the filename of the known\_host file to use. The known\_hosts file should use the OpenSSH file format as supported by libssh2. If this file is specified, libcurl only accepts connections with hosts that are known and present in that file, with a matching public key. Use *[CURLOPT\_SSH\_KEYFUNCTION(3)](/CURLOPT_SSH_KEYFUNCTION/3.md)* to alter the default behavior on host and key matches and mismatches.

The application does not have to keep the string around after setting this option.

## DEFAULT

NULL

## PROTOCOLS

SFTP and SCP

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    curl_easy_setopt(curl, CURLOPT_URL, "sftp://example.com/file");
    curl_easy_setopt(curl, CURLOPT_SSH_KNOWNHOSTS,
                     "/home/clarkkent/.ssh/known_hosts");
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}
```

## AVAILABILITY

Added in 7.19.6

## RETURN VALUE

Returns CURLE\_OK if the option is supported, CURLE\_UNKNOWN\_OPTION if not, or CURLE\_OUT\_OF\_MEMORY if there was insufficient heap space.

## SEE ALSO

[**CURLOPT\_SSH\_AUTH\_TYPES**(3)](/CURLOPT_SSH_AUTH_TYPES/3.md), [**CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_MD5**(3)](/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5/3.md)
