# salt.modules.scp

## SCP Module

Added in version 2019.2.0.

Module to copy files via SCP

salt.modules.scp_mod.get(remote_path, local_path='', recursive=False, preserve_times=False, **kwargs)

  Transfer files and directories from remote host to the localhost of the Minion.

  remote_path

    Path to retrieve from remote host. Since this is evaluated by scp on the remote host, shell wildcards and environment variables may be used.

  recursive: `False`

    Transfer files and directories recursively.

  preserve_times: `False`

    Preserve `mtime` and `atime` of transferred files and directories.

  hostname

    The hostname of the remote device.

  port: `22`

    The port of the remote device.

  username

    The username required for SSH authentication on the device.

  password

    Used for password authentication. It is also used for private key decryption if `passphrase` is not given.

  passphrase

    Used for decrypting private keys.

  pkey

    An optional private key to use for authentication.

  key_filename

    The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.

  timeout

    An optional timeout (in seconds) for the TCP connect.

  socket_timeout: `10`

    The channel socket timeout in seconds.

  buff_size: `16384`

    The size of the SCP send buffer.

  allow_agent: `True`

    Set to `False` to disable connecting to the SSH agent.

  look_for_keys: `True`

    Set to `False` to disable searching for discoverable private key files in `~/.ssh/`

  banner_timeout

    An optional timeout (in seconds) to wait for the SSH banner to be presented.

  auth_timeout

    An optional timeout (in seconds) to wait for an authentication response.

  auto_add_policy: `False`

    Automatically add the host to the `known_hosts`.

  CLI Example:

      salt '*' scp.get /var/tmp/file /tmp/file hostname=10.10.10.1 auto_add_policy=True

salt.modules.scp_mod.put(files, remote_path=None, recursive=False, preserve_times=False, saltenv='base', **kwargs)

  Transfer files and directories to remote host.

  files

    A single path or a list of paths to be transferred.

  remote_path

    The path on the remote device where to store the files.

  recursive: `True`

    Transfer files and directories recursively.

  preserve_times: `False`

    Preserve `mtime` and `atime` of transferred files and directories.

  hostname

    The hostname of the remote device.

  port: `22`

    The port of the remote device.

  username

    The username required for SSH authentication on the device.

  password

    Used for password authentication. It is also used for private key decryption if `passphrase` is not given.

  passphrase

    Used for decrypting private keys.

  pkey

    An optional private key to use for authentication.

  key_filename

    The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.

  timeout

    An optional timeout (in seconds) for the TCP connect.

  socket_timeout: `10`

    The channel socket timeout in seconds.

  buff_size: `16384`

    The size of the SCP send buffer.

  allow_agent: `True`

    Set to `False` to disable connecting to the SSH agent.

  look_for_keys: `True`

    Set to `False` to disable searching for discoverable private key files in `~/.ssh/`

  banner_timeout

    An optional timeout (in seconds) to wait for the SSH banner to be presented.

  auth_timeout

    An optional timeout (in seconds) to wait for an authentication response.

  auto_add_policy: `False`

    Automatically add the host to the `known_hosts`.

  CLI Example:

      salt '*' scp.put /path/to/file /var/tmp/file hostname=server1 auto_add_policy=True