ssh API¶
A wrapper for Paramiko that attempts to make ssh sessions easier to work with.
-
sshreader.ssh.
envvars
() → sshreader.types.EnvVars[source]¶ Attempt to determine the current username and location of any ssh private keys. If any value is unable to be determined it is returned as ‘None’.
This method also checks for any private keys loaded into the SSH Agent.
Returns: NamedTuple of (username, agent_keys, rsa_key, dsa_key, ecdsa_key) Return type: typing.NamedTuple
-
class
sshreader.ssh.
SSH
(fqdn: str, username: str, password: Optional[str] = None, keyfile: Optional[str] = None, keypass: Optional[str] = None, port: int = 22, connect: bool = True, rsa_sha2: bool = True)[source]¶ SSH Session class which can be used to send commands to a remote server. It also supports basic SFTP commands and can be used to push/pull files from a remote system.
Parameters: - fqdn (str, required) – Fully qualified domain name or IP address
- username (str, required) – SSH username
- password (str, optional) – SSH password
- keyfile (str, optional) – Path to SSH Private Key File
- keypass (str, optional) – SSH private key password
- port (int, optional) – SSH port (Default: 22)
- connect (bool, optional) – Initiate ssh connection on object initialization (Default: True)
- rsa_sha2 (bool, optional) – Enable/Disable RSA w/SHA2 hashes (Default: True)
Raises: paramiko.SSHException
-
alive
()[source]¶ Is an SSH connection alive
Returns: True or False Return type: bool Raises: paramiko.SSHException
-
connect
(timeout: Union[int, float] = 0.5) → bool[source]¶ Opens an SSH Connection
Parameters: timeout (int or float, optional) – TCP Timeout in seconds (Default: 0.5) Returns: True Return type: bool Raises: paramiko.SSHException
-
sftp_get
(srcfile: str, dstfile: str) → None[source]¶ Use the SFTP subsystem of OpenSSH to copy a remote file to the localhost
Parameters: - srcfile (str, required) – Path to the remote file
- dstfile (str, required) – Path to the local file
Returns: None
-
sftp_put
(srcfile: str, dstfile: str) → Any[source]¶ Use the SFTP subsystem of OpenSSH to copy a local file to a remote host
Parameters: - srcfile (str, required) – Path to the local file
- dstfile (str, required) – Path to the remote file
Returns: Result of
paramiko.SFTPClient.put()
-
ssh_command
(command: str, timeout: Union[int, float] = 30, combine: bool = False, decodebytes: bool = True) → sshreader.types.Command[source]¶ Run a command over an ssh connection
Parameters: - command (str, required) – The command to run
- timeout (int or float, optional) – Timeout for blocking commands in seconds (Default: 30)
- combine (bool, optional) – Combine stderr and stdout using a pseudo TTY (Default: False)
- decodebytes (bool, optional) – Decode bytes objects to unicode strings in Python3 (Default: True)
Returns: Namedtuple of (cmd, stdout, stderr, return_code) or (cmd, stdout, return_code)
Return type: Command
Raises: paramiko.SSHException