curl-curl/docs/cmdline-opts/netrc.md
Daniel Stenberg a327a5bded
netrc: refactor into smaller sub functions
Fixes #20950 - test 685 is extended for this
Closes #20932
2026-03-17 16:51:38 +01:00

1.8 KiB

c SPDX-License-Identifier Long Short Help Category Added Mutexed Multi See-also Example
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. curl netrc n Must read .netrc for username and password auth 4.6 netrc-file netrc-optional boolean
netrc-file
config
user
--netrc $URL

--netrc

Make curl scan the .netrc file in the user's home directory for login name and password. This is typically used for FTP on Unix. If used with HTTP, curl enables user authentication. See netrc(5) and ftp(1) for details on the file format. curl does not complain if that file does not have the right permissions (it should be neither world- nor group-readable). The environment variable HOME is used to find the home directory. If the NETRC environment variable is set, that filename is used as the netrc file. (Added in 8.16.0)

If --netrc-file is used, that overrides all other ways to figure out the file.

The netrc file provides credentials for a hostname independent of which protocol and port number that are used.

On Windows two filenames in the home directory are checked: .netrc and _netrc, preferring the former. Older versions on Windows checked for _netrc only.

A quick and simple example of how to setup a .netrc to allow curl to access the machine host.example.com with username myself and password secret could look similar to:

machine host.example.com
login myself
password secret

curl also supports the default keyword. This is the same as machine name except that default matches any name. There can be only one default token, and it must be after all machine tokens.

When providing a username in the URL and a .netrc file, curl looks for the password for that specific user for the given host if such an entry appears in the file before a "generic" machine entry without login specified.