Ssh¶
Execute commands and up/download files from the remote host.
Eg: pyinfra -> inventory-host.net <-> another-host.net
ssh.command
¶
Execute commands on other servers over SSH.
ssh.command(hostname, command, ssh_user=None)
- hostname: the hostname to connect to
- command: the command to execute
- ssh_user: connect with this user
ssh.download
¶
Download files from other servers using scp
.
ssh.download(hostname, filename, local_filename=None, force=False, ssh_keyscan=False, ssh_user=None)
- hostname: hostname to upload to
- filename: file to download
- local_filename: where to download the file to (defaults to
filename
) - force: always download the file, even if present locally
- ssh_keyscan: execute
ssh.keyscan
before uploading the file - ssh_user: connect with this user
ssh.keyscan
¶
Manage the hosts in ~/.ssh/known_hosts
.
ssh.keyscan(hostname, force=False)
- hostname: hostname that should have a key in
known_hosts
- force: if the key already exists, remove and rescan
ssh.upload
¶
Upload files to other servers using scp
.
ssh.upload(
hostname, filename, remote_filename=None, use_remote_sudo=False, ssh_keyscan=False,
ssh_user=None
)
- hostname: hostname to upload to
- filename: file to upload
- remote_filename: where to upload the file to (defaults to
filename
) - use_remote_sudo: upload to a temporary location and move using sudo
- ssh_keyscan: execute
ssh.keyscan
before uploading the file - ssh_user: connect with this user