![](https://seccdn.libravatar.org/avatar/000404b9c3cf99a2a21283776f57d3b5.jpg?s=120&d=mm&r=g)
Hello community,
here is the log from the commit of package python-paramiko for openSUSE:Factory checked in at 2017-01-25 23:23:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-paramiko (Old)
and /work/SRC/openSUSE:Factory/.python-paramiko.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-paramiko"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-paramiko/python-paramiko.changes 2016-10-10 16:24:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-paramiko.new/python-paramiko.changes 2017-01-25 23:23:18.451029690 +0100
@@ -1,0 +2,25 @@
+Tue Dec 13 11:50:39 UTC 2016 - mimi.vx@gmail.com
+
+- update to 2.1.1
+* A tweak to the original patch implementing gh#398 was not fully applied,
+ causing calls to ~paramiko.client.SSHClient.invoke_shell to fail with
+ AttributeError. This has been fixed.
+* Fix the implementation of PKey.write_private_key_file (this method is only
+ publicly defined on subclasses; the fix was in the private real
+ implementation) so it passes the correct params to open()
+* Add an optional timeout parameter to Transport.start_clienti
+ ProxyCommand</span></code> support","Server implementation","SFTP","Exceptions","GSS-API authentication","Transport","Welcome to Paramiko’s documentation!"],titleterms:{"class":[8,18],"function":18,agent:0,api:[7,16,18],authent:[16,18],buffer:[1,5],channel:2,client:3,configur:4,core:18,cross:11,document:18,dsa:8,dss:8,ecdsa:8,exception:15,exchang:7,file:[5,6],gss:[7,16],handl:8,host:6,implement:[11,13],kei:[6,7,8,18],known_host:6,messag:9,miscellani:18,other:18,packet:10,paramiko:18,parent:8,pipe:[1,11],platform:11,primari:18,protocol:18,proxycommand:12,rsa:8,server:13,sftp:14,ssh:[0,18],support:12,transport:17,welcom:18}})
\ No newline at end of file
+Search.setIndex({envversion:49,filenames:["api/agent","api/buffered_pipe","api/channel","api/client","api/config","api/file","api/hostkeys","api/kex_gss","api/keys","api/message","api/packet","api/pipe","api/proxy","api/server","api/sftp","api/ssh_exception","api/ssh_gss","api/transport","index"],objects:{"paramiko.agent":{Agent:[0,1,1,""],AgentClientProxy:[0,1,1,""],AgentKey:[0,1,1,""],AgentLocalProxy:[0,1,1,""],AgentProxyThread:[0,1,1,""],AgentRemoteProxy:[0,1,1,""],AgentRequestHandler:[0,1,1,""],AgentServerProxy:[0,1,1,""]},"paramiko.agent.Agent":{close:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.agent.AgentClientProxy":{close:[0,2,1,""],connect:[0,2,1,""]},"paramiko.agent.AgentKey":{can_sign:[0,2,1,""],from_private_key:[0,2,1,""],from_private_key_file:[0,2,1,""],get_base64:[0,2,1,""],get_bits:[0,2,1,""],get_fingerprint:[0,2,1,""],verify_ssh_sig:[0,2,1,""],write_private_key:[0,2,1,""],write_private_key_file:[0,2,1,""]},"paramiko.agent.AgentLocalProxy":{daemon:[0,3,1,""],get_connection:[0,2,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentProxyThread":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentRemoteProxy":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentServerProxy":{close:[0,2,1,""],get_env:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.buffered_pipe":{BufferedPipe:[1,1,1,""],PipeTimeout:[1,4,1,""]},"paramiko.buffered_pipe.BufferedPipe":{"__len__":[1,2,1,""],"__weakref__":[1,3,1,""],close:[1,2,1,""],empty:[1,2,1,""],feed:[1,2,1,""],read:[1,2,1,""],read_ready:[1,2,1,""],set_event:[1,2,1,""]},"paramiko.buffered_pipe.PipeTimeout":{"__weakref__":[1,3,1,""]},"paramiko.channel":{Channel:[2,1,1,""],ChannelFile:[2,1,1,""],open_only:[2,5,1,""]},"paramiko.channel.Channel":{"__init__":[2,2,1,""],"__repr__":[2,2,1,""],active:[2,3,1,""],chanid:[2,3,1,""],close:[2,2,1,""],closed:[2,3,1,""],exec_command:[2,2,1,""],exit_status_ready:[2,2,1,""],fileno:[2,2,1,""],get_id:[2,2,1,""],get_name:[2,2,1,""],get_pty:[2,2,1,""],get_transport:[2,2,1,""],getpeername:[2,2,1,""],gettimeout:[2,2,1,""],invoke_shell:[2,2,1,""],invoke_subsystem:[2,2,1,""],makefile:[2,2,1,""],makefile_stderr:[2,2,1,""],recv:[2,2,1,""],recv_exit_status:[2,2,1,""],recv_ready:[2,2,1,""],recv_stderr:[2,2,1,""],recv_stderr_ready:[2,2,1,""],remote_chanid:[2,3,1,""],request_forward_agent:[2,2,1,""],request_x11:[2,2,1,""],resize_pty:[2,2,1,""],send:[2,2,1,""],send_exit_status:[2,2,1,""],send_ready:[2,2,1,""],send_stderr:[2,2,1,""],sendall:[2,2,1,""],sendall_stderr:[2,2,1,""],set_combine_stderr:[2,2,1,""],set_environment_variable:[2,2,1,""],set_name:[2,2,1,""],setblocking:[2,2,1,""],settimeout:[2,2,1,""],shutdown:[2,2,1,""],shutdown_read:[2,2,1,""],shutdown_write:[2,2,1,""],transport:[2,3,1,""],update_environment:[2,2,1,""]},"paramiko.channel.ChannelFile":{"__repr__":[2,2,1,""]},"paramiko.client":{AutoAddPolicy:[3,1,1,""],MissingHostKeyPolicy:[3,1,1,""],RejectPolicy:[3,1,1,""],SSHClient:[3,1,1,""],WarningPolicy:[3,1,1,""]},"paramiko.client.MissingHostKeyPolicy":{"__weakref__":[3,3,1,""],missing_host_key:[3,2,1,""]},"paramiko.client.SSHClient":{"__init__":[3,2,1,""],close:[3,2,1,""],connect:[3,2,1,""],exec_command:[3,2,1,""],get_host_keys:[3,2,1,""],get_transport:[3,2,1,""],invoke_shell:[3,2,1,""],load_host_keys:[3,2,1,""],load_system_host_keys:[3,2,1,""],open_sftp:[3,2,1,""],save_host_keys:[3,2,1,""],set_log_channel:[3,2,1,""],set_missing_host_key_policy:[3,2,1,""]},"paramiko.config":{LazyFqdn:[4,1,1,""],SSHConfig:[4,1,1,""]},"paramiko.config.LazyFqdn":{"__weakref__":[4,3,1,""]},"paramiko.config.SSHConfig":{"__init__":[4,2,1,""],"__weakref__":[4,3,1,""],get_hostnames:[4,2,1,""],lookup:[4,2,1,""],parse:[4,2,1,""]},"paramiko.dsskey":{DSSKey:[8,1,1,""]},"paramiko.dsskey.DSSKey":{generate:[8,6,1,""]},"paramiko.ecdsakey":{ECDSAKey:[8,1,1,""]},"paramiko.ecdsakey.ECDSAKey":{generate:[8,7,1,""]},"paramiko.file":{BufferedFile:[5,1,1,""]},"paramiko.file.BufferedFile":{"__iter__":[5,2,1,""],close:[5,2,1,""],flush:[5,2,1,""],next:[5,2,1,""],read:[5,2,1,""],readable:[5,2,1,""],readinto:[5,2,1,""],readline:[5,2,1,""],readlines:[5,2,1,""],seek:[5,2,1,""],seekable:[5,2,1,""],tell:[5,2,1,""],writable:[5,2,1,""],write:[5,2,1,""],writelines:[5,2,1,""],xreadlines:[5,2,1,""]},"paramiko.hostkeys":{HostKeyEntry:[6,1,1,""],HostKeys:[6,1,1,""]},"paramiko.hostkeys.HostKeyEntry":{from_line:[6,7,1,""],to_line:[6,2,1,""]},"paramiko.hostkeys.HostKeys":{"__init__":[6,2,1,""],add:[6,2,1,""],check:[6,2,1,""],clear:[6,2,1,""],hash_host:[6,6,1,""],load:[6,2,1,""],lookup:[6,2,1,""],save:[6,2,1,""]},"paramiko.kex_gss":{KexGSSGex:[7,1,1,""],KexGSSGroup14:[7,1,1,""],KexGSSGroup1:[7,1,1,""],NullHostKey:[7,1,1,""]},"paramiko.kex_gss.KexGSSGex":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.KexGSSGroup1":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.NullHostKey":{"__weakref__":[7,3,1,""]},"paramiko.message":{Message:[9,1,1,""]},"paramiko.message.Message":{"__init__":[9,2,1,""],"__repr__":[9,2,1,""],"__str__":[9,2,1,""],"__weakref__":[9,3,1,""],add:[9,2,1,""],add_adaptive_int:[9,2,1,""],add_boolean:[9,2,1,""],add_byte:[9,2,1,""],add_bytes:[9,2,1,""],add_int64:[9,2,1,""],add_int:[9,2,1,""],add_list:[9,2,1,""],add_mpint:[9,2,1,""],add_string:[9,2,1,""],asbytes:[9,2,1,""],get_adaptive_int:[9,2,1,""],get_binary:[9,2,1,""],get_boolean:[9,2,1,""],get_byte:[9,2,1,""],get_bytes:[9,2,1,""],get_int64:[9,2,1,""],get_int:[9,2,1,""],get_list:[9,2,1,""],get_mpint:[9,2,1,""],get_remainder:[9,2,1,""],get_so_far:[9,2,1,""],get_string:[9,2,1,""],get_text:[9,2,1,""],rewind:[9,2,1,""]},"paramiko.packet":{Packetizer:[10,1,1,""]},"paramiko.packet.Packetizer":{"__weakref__":[10,3,1,""],complete_handshake:[10,2,1,""],handshake_timed_out:[10,2,1,""],need_rekey:[10,2,1,""],read_all:[10,2,1,""],read_message:[10,2,1,""],readline:[10,2,1,""],send_message:[10,2,1,""],set_inbound_cipher:[10,2,1,""],set_keepalive:[10,2,1,""],set_log:[10,2,1,""],set_outbound_cipher:[10,2,1,""],start_handshake:[10,2,1,""]},"paramiko.pipe":{WindowsPipe:[11,1,1,""],make_or_pipe:[11,5,1,""]},"paramiko.pipe.WindowsPipe":{"__weakref__":[11,3,1,""]},"paramiko.pkey":{PKey:[8,1,1,""]},"paramiko.pkey.PKey":{"__cmp__":[8,2,1,""],"__init__":[8,2,1,""],"__weakref__":[8,3,1,""],asbytes:[8,2,1,""],can_sign:[8,2,1,""],from_private_key:[8,7,1,""],from_private_key_file:[8,7,1,""],get_base64:[8,2,1,""],get_bits:[8,2,1,""],get_fingerprint:[8,2,1,""],get_name:[8,2,1,""],sign_ssh_data:[8,2,1,""],verify_ssh_sig:[8,2,1,""],write_private_key:[8,2,1,""],write_private_key_file:[8,2,1,""]},"paramiko.proxy":{ProxyCommand:[12,1,1,""]},"paramiko.proxy.ProxyCommand":{"__init__":[12,2,1,""],recv:[12,2,1,""],send:[12,2,1,""]},"paramiko.rsakey":{RSAKey:[8,1,1,""]},"paramiko.rsakey.RSAKey":{generate:[8,6,1,""]},"paramiko.server":{InteractiveQuery:[13,1,1,""],ServerInterface:[13,1,1,""],SubsystemHandler:[13,1,1,""]},"paramiko.server.InteractiveQuery":{"__init__":[13,2,1,""],"__weakref__":[13,3,1,""],add_prompt:[13,2,1,""]},"paramiko.server.ServerInterface":{"__weakref__":[13,3,1,""],cancel_port_forward_request:[13,2,1,""],check_auth_gssapi_keyex:[13,2,1,""],check_auth_gssapi_with_mic:[13,2,1,""],check_auth_interactive:[13,2,1,""],check_auth_interactive_response:[13,2,1,""],check_auth_none:[13,2,1,""],check_auth_password:[13,2,1,""],check_auth_publickey:[13,2,1,""],check_channel_direct_tcpip_request:[13,2,1,""],check_channel_env_request:[13,2,1,""],check_channel_exec_request:[13,2,1,""],check_channel_forward_agent_request:[13,2,1,""],check_channel_pty_request:[13,2,1,""],check_channel_request:[13,2,1,""],check_channel_shell_request:[13,2,1,""],check_channel_subsystem_request:[13,2,1,""],check_channel_window_change_request:[13,2,1,""],check_channel_x11_request:[13,2,1,""],check_global_request:[13,2,1,""],check_port_forward_request:[13,2,1,""],enable_auth_gssapi:[13,2,1,""],get_allowed_auths:[13,2,1,""]},"paramiko.server.SubsystemHandler":{"__init__":[13,2,1,""],finish_subsystem:[13,2,1,""],get_server:[13,2,1,""],start_subsystem:[13,2,1,""]},"paramiko.sftp_attr":{SFTPAttributes:[14,1,1,""]},"paramiko.sftp_attr.SFTPAttributes":{"__init__":[14,2,1,""],"__str__":[14,2,1,""],"__weakref__":[14,3,1,""],from_stat:[14,7,1,""]},"paramiko.sftp_client":{SFTP:[14,1,1,""],SFTPClient:[14,1,1,""]},"paramiko.sftp_client.SFTPClient":{"__init__":[14,2,1,""],chdir:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],file:[14,2,1,""],from_transport:[14,7,1,""],get:[14,2,1,""],get_channel:[14,2,1,""],getcwd:[14,2,1,""],getfo:[14,2,1,""],listdir:[14,2,1,""],listdir_attr:[14,2,1,""],listdir_iter:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],normalize:[14,2,1,""],open:[14,2,1,""],put:[14,2,1,""],putfo:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""],truncate:[14,2,1,""],unlink:[14,2,1,""],utime:[14,2,1,""]},"paramiko.sftp_file":{SFTPFile:[14,1,1,""]},"paramiko.sftp_file.SFTPFile":{check:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],flush:[14,2,1,""],gettimeout:[14,2,1,""],next:[14,2,1,""],prefetch:[14,2,1,""],read:[14,2,1,""],readable:[14,2,1,""],readinto:[14,2,1,""],readline:[14,2,1,""],readlines:[14,2,1,""],readv:[14,2,1,""],seekable:[14,2,1,""],set_pipelined:[14,2,1,""],setblocking:[14,2,1,""],settimeout:[14,2,1,""],stat:[14,2,1,""],tell:[14,2,1,""],truncate:[14,2,1,""],utime:[14,2,1,""],writable:[14,2,1,""],write:[14,2,1,""],writelines:[14,2,1,""],xreadlines:[14,2,1,""]},"paramiko.sftp_handle":{SFTPHandle:[14,1,1,""]},"paramiko.sftp_handle.SFTPHandle":{"__init__":[14,2,1,""],chattr:[14,2,1,""],close:[14,2,1,""],read:[14,2,1,""],stat:[14,2,1,""],write:[14,2,1,""]},"paramiko.sftp_server":{SFTPServer:[14,1,1,""]},"paramiko.sftp_server.SFTPServer":{"__init__":[14,2,1,""],convert_errno:[14,6,1,""],set_file_attr:[14,6,1,""]},"paramiko.sftp_si":{SFTPServerInterface:[14,1,1,""]},"paramiko.sftp_si.SFTPServerInterface":{"__init__":[14,2,1,""],"__weakref__":[14,3,1,""],canonicalize:[14,2,1,""],chattr:[14,2,1,""],list_folder:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],open:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],session_ended:[14,2,1,""],session_started:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""]},"paramiko.ssh_exception":{AuthenticationException:[15,4,1,""],BadAuthenticationType:[15,4,1,""],BadHostKeyException:[15,4,1,""],ChannelException:[15,4,1,""],NoValidConnectionsError:[15,4,1,""],PartialAuthentication:[15,4,1,""],PasswordRequiredException:[15,4,1,""],ProxyCommandFailure:[15,4,1,""],SSHException:[15,4,1,""]},"paramiko.ssh_exception.NoValidConnectionsError":{"__init__":[15,2,1,""]},"paramiko.ssh_exception.SSHException":{"__weakref__":[15,3,1,""]},"paramiko.ssh_gss":{"_SSH_GSSAPI":[16,1,1,""],"_SSH_GSSAuth":[16,1,1,""],"_SSH_SSPI":[16,1,1,""],GSSAuth:[16,5,1,""]},"paramiko.ssh_gss._SSH_GSSAPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.ssh_gss._SSH_GSSAuth":{"__init__":[16,2,1,""],"__weakref__":[16,3,1,""],set_service:[16,2,1,""],set_username:[16,2,1,""],ssh_check_mech:[16,2,1,""],ssh_gss_oids:[16,2,1,""]},"paramiko.ssh_gss._SSH_SSPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.transport":{SecurityOptions:[17,1,1,""],Transport:[17,1,1,""]},"paramiko.transport.SecurityOptions":{"__repr__":[17,2,1,""],ciphers:[17,3,1,""],compression:[17,3,1,""],digests:[17,3,1,""],kex:[17,3,1,""],key_types:[17,3,1,""]},"paramiko.transport.Transport":{"__init__":[17,2,1,""],"__repr__":[17,2,1,""],accept:[17,2,1,""],add_server_key:[17,2,1,""],atfork:[17,2,1,""],auth_gssapi_keyex:[17,2,1,""],auth_gssapi_with_mic:[17,2,1,""],auth_interactive:[17,2,1,""],auth_interactive_dumb:[17,2,1,""],auth_none:[17,2,1,""],auth_password:[17,2,1,""],auth_publickey:[17,2,1,""],cancel_port_forward:[17,2,1,""],close:[17,2,1,""],connect:[17,2,1,""],get_banner:[17,2,1,""],get_exception:[17,2,1,""],get_hexdump:[17,2,1,""],get_log_channel:[17,2,1,""],get_remote_server_key:[17,2,1,""],get_security_options:[17,2,1,""],get_server_key:[17,2,1,""],get_username:[17,2,1,""],getpeername:[17,2,1,""],global_request:[17,2,1,""],is_active:[17,2,1,""],is_authenticated:[17,2,1,""],load_server_moduli:[17,6,1,""],open_channel:[17,2,1,""],open_forward_agent_channel:[17,2,1,""],open_forwarded_tcpip_channel:[17,2,1,""],open_session:[17,2,1,""],open_sftp_client:[17,2,1,""],open_x11_channel:[17,2,1,""],renegotiate_keys:[17,2,1,""],request_port_forward:[17,2,1,""],send_ignore:[17,2,1,""],set_gss_host:[17,2,1,""],set_hexdump:[17,2,1,""],set_keepalive:[17,2,1,""],set_log_channel:[17,2,1,""],set_subsystem_handler:[17,2,1,""],start_client:[17,2,1,""],start_server:[17,2,1,""],use_compression:[17,2,1,""]},paramiko:{agent:[0,0,0,"-"],buffered_pipe:[1,0,0,"-"],channel:[2,0,0,"-"],client:[3,0,0,"-"],config:[4,0,0,"-"],dsskey:[8,0,0,"-"],ecdsakey:[8,0,0,"-"],file:[5,0,0,"-"],hostkeys:[6,0,0,"-"],kex_gss:[7,0,0,"-"],message:[9,0,0,"-"],packet:[10,0,0,"-"],pipe:[11,0,0,"-"],pkey:[8,0,0,"-"],proxy:[12,0,0,"-"],rsakey:[8,0,0,"-"],server:[13,0,0,"-"],sftp:[14,0,0,"-"],sftp_attr:[14,0,0,"-"],sftp_client:[14,0,0,"-"],sftp_file:[14,0,0,"-"],sftp_handle:[14,0,0,"-"],sftp_server:[14,0,0,"-"],sftp_si:[14,0,0,"-"],ssh_exception:[15,0,0,"-"],ssh_gss:[16,0,0,"-"],transport:[17,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","exception","Python exception"],"5":["py","function","Python function"],"6":["py","staticmethod","Python static method"],"7":["py","classmethod","Python class method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:exception","5":"py:function","6":"py:staticmethod","7":"py:classmethod"},terms:{"2fac":17,"__cmp__":8,"__init__":[2,3,4,6,8,9,12,13,14,15,16,17],"__iter__":5,"__len__":1,"__repr__":[2,9,17],"__str__":[9,14],"__weakref__":[1,3,4,7,8,9,10,11,13,14,15,16],"_flag":[5,14],"_ssh_build_mic":16,"_ssh_gssapi":16,"_ssh_gssauth":16,"_ssh_sspi":16,"abstract":[0,8,14],"boolean":[0,9,13,16,17],"break":9,"byte":[0,1,2,5,6,8,9,10,12,14,16,17],"case":[2,3,13,14,15,17],"catch":[14,17],"char":[7,12],"class":[],"default":[0,1,2,3,4,13,14,16,17],"else":[5,14],"float":[0,1,2,3,10,14,17],"function":[],"import":[14,16],"int":[0,1,2,3,5,8,9,10,12,13,14,15,17],"long":[6,9,10,13,14,17],"new":[0,1,2,3,4,6,7,8,9,10,12,13,14,15,16,17],"null":[5,7,14],"public":[0,8,15,17,18],"return":[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17],"short":13,"static":[6,8,14,17],"switch":[10,17],"true":[0,1,2,3,5,6,8,10,13,14,16,17],"try":[3,15,17],"void":[16,17],"while":[2,3,14],abil:14,abl:2,about:[13,14],abov:13,abruptli:14,absent:[5,14],absolut:[5,14],abstraction:[2,11,14],accept:[2,3,13,14,16,17],acceptenv:2,access:[5,13,14,15],accord:4,account:13,accur:[5,14],achiev:17,across:[2,13,14,17],act:[11,13,18],activ:[0,2,14,17],actual:[2,5,11,13,14,16,17],add:[1,3,5,6,9,13,14,17],add_adaptive_int:9,add_boolean:9,add_byt:9,add_int64:9,add_int:9,add_list:9,add_mpint:9,add_prompt:13,add_server_kei:17,add_str:9,added:[3,14,17],addit:[2,14,17],address:[0,2,13,15,17],adequ:14,advers:17,affect:[2,11,14,17],after:[0,1,2,3,5,10,13,14,17],afterward:14,again:[2,13],against:3,agentclientproxi:0,agentforward:13,agentkei:0,agentlocalproxi:0,agentproxythread:0,agentremoteproxi:0,agentrequesthandl:0,agentserverproxi:0,agre:17,aka:[4,14],algorithm:[14,17],alia:[14,17],alias:14,aliv:[0,17],all:[0,1,2,4,5,6,8,10,13,14,15,17],alloc:[13,17],allow:[2,13,14,15,17,18],allow_ag:3,allowed_typ:15,almost:[13,17],alreadi:[9,14],also:[0,2,13,14,17],alter:14,altern:14,alwai:[0,2,10,13,14,17],amount:[1,2,10],ani:[0,1,2,3,5,6,9,13,14,17],anoth:[0,1,2,8,9,12],answer:[13,17],anticip:14,any:[3,6,14,17],anyth:[3,9,17],anytim:3,api:[],apolog:14,appear:3,append:[5,14],appli:4,applic:[2,3,13],applicat:2,appropri:14,approxim:[5,14],arbitrari:[9,14,17],area:18,aren:[9,13],arg:2,arguabl:6,argument:[0,1,2,3,5,12,13,14,17],around:[2,5,17],arrang:0,arriv:[1,2,13,17],asbyt:[8,9],asid:13,ask:[0,2,3,13,14,17],aspect:3,assign:[13,17],associ:[2,6,13,14],assum:[1,5,10,13,14,15],asymmetr:8,asynchron:17,asyncor:2,atfork:17,atim:14,attach:[2,17],attack:17,attemp:14,attempt:[0,1,2,3,10,13,14,15,16,17],attr:14,attribut:[14,15],autent:17,auth:[2,3,13,17],auth_cooki:[2,13],auth_failed:13,auth_gssapi_keyex:17,auth_gssapi_with_m:17,auth_interact:17,auth_interactive_dumb:17,auth_method:16,auth_non:17,auth_partially_successful:13,auth_password:17,auth_protocol:[2,13],auth_publickei:17,auth_successful:13,authent:[],authenticationexcept:[3,15,17],authhandl:13,author:14,autoaddpolici:3,autom:17,automat:[0,2,3,17],avail:[0,13,16],avoid:[2,14],back:[2,3,5,13,17],background:[2,14],backward:14,bad:2,badauthenticationtyp:[15,17],badhostkeyexcept:[3,15],banner:[3,17],banner_timeout:3,base64:[0,8],base:[0,5,8,9,10,14,17],basestr:17,basic:[2,18],battl:17,becaus:[2,5,13,14,15,16,17],been:[0,1,2,5,9,13,14,17],befor:[0,1,2,6,8,10,14,17],begin:[4,9,13,14,17],behav:[2,14,17],behavior:[2,13,14,17],belief:17,below:13,besid:17,betti:14,between:[0,12],binari:[0,5,8,14],bind:17,bit:[0,2,8,9,14],bitset:14,bizarr:14,blindli:13,blob:[0,8],block:[0,1,2,10,13,14,17],block_engin:10,block_siz:[10,14],book:10,bool:[2,3,9,10,13,14,16,17],both:[2,4,11,13,14,17],bother:6,boundari:14,buff:[5,14],buffered_pip:1,bufferedfil:[5,14],bufferedpip:1,bufsiz:[2,3,5,14],bug:6,build:9,built:[2,3,14],byte_count:17,bytearrai:[5,14],cach:[3,13],call:[0,1,2,3,5,6,10,13,14,16,17],callabl:[14,17],callback:[10,14],can:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,17],can_sign:[0,8],cancel:[13,17],cancel_port_forward:17,cancel_port_forward_request:13,cannot:[8,14],canon:14,canonic:14,captur:15,care:[3,6,14],caus:[0,2,3,13,14,17],cc_file:13,cc_filenam:13,certain:17,certainli:13,cetain:13,challeng:13,chan:[0,2],chanclient:0,chang:[2,3,14,17],changelog:18,chanid:[2,13],channel:[],channelexcept:15,channelfil:2,chanremot:0,charact:[2,3,5,9,13,14],charg:0,chattr:14,chdir:14,check:[2,3,5,6,10,13,14,16,18],check_auth_gssapi_keyex:13,check_auth_gssapi_with_m:13,check_auth_interact:13,check_auth_interactive_respons:13,check_auth_non:[13,17],check_auth_password:[13,17],check_auth_publickei:[13,17],check_channel_direct_tcpip_request:13,check_channel_env_request:13,check_channel_exec_request:13,check_channel_forward_agent_request:13,check_channel_pty_request:13,check_channel_request:[2,13,17],check_channel_shell_request:13,check_channel_subsystem_request:13,check_channel_window_change_request:13,check_channel_x11_request:13,check_global_request:13,check_port_forward_request:13,check_rekei:10,child:17,chmod:14,chown:14,chunk:14,cipher:[10,17],claim:17,classmethod:[6,8,14],clean:[0,17],cleanli:[14,17],cleanup:[13,14],clear:[1,6,11,17],client:[],client_token:16,clone:0,close:[0,1,2,3,5,10,13,14,17],code:[2,13,14,15,17],collect:[2,3,14],com:[3,13,17],combin:[2,6,9,13],come:14,comma:[9,13],command:[0,2,3,12,13,15],command_lin:12,commandproxi:12,comment:6,common:[2,8,14],commonli:14,commun:[0,3,17],compar:8,compat:[0,8,14],complet:[2,10,13,14,17],complete_handshak:10,compress:[3,17],comput:[14,17],concaten:[9,14],concept:14,condit:[2,3],config:[4,15],confirm:14,conflict:3,confus:17,connect:[0,2,3,7,13,15,16,17],consid:[2,14],consist:14,constant:2,construct:17,constructor:[0,2,9,14,17],contact:0,contain:[0,2,4,5,8,9,13,14,16,17],content:[0,7,8,9,12,14,17,18],context:[2,3,12,14,16,17],contextu:13,continu:[2,13,14,17],control:[0,2,13,14,17,18],conveni:[2,4,14],convert:[14,17],convert_errno:14,cooki:[2,13],cookie:2,copi:14,core:[],correctli:[0,2,8],correspond:[8,13,14],corrupt:17,could:[2,3,9,10,14,16],couldn:0,count:[5,14],cover:18,creat:[0,2,3,4,6,8,9,12,13,14,16,17],creation:18,credentail:16,credenti:[3,7,13,15,16,17],credentials_deleg:16,criteria:17,cryptographi:8,current:[0,2,3,5,10,14,16,17],curv:8,custom:9,cycl:[13,14],daemon:0,danger:13,data:[0,1,2,5,6,8,10,13,14,17,18],databas:[3,17],deadlock:0,deal:9,debian:17,debug:[2,9,17],decid:[0,13,18],declar:4,decod:9,decompos:9,decor:2,decrypt:[0,8],default_max_packet_s:17,default_window_s:[2,17],defin:[1,3,4,7,8,9,10,11,13,14,15,16],deleg:[3,7,13,16,17],delet:14,deliveri:2,demand:17,deni:17,depend:[2,14],deprec:[5,14],der:16,describ:[4,15],descript:14,descriptor:2,desctruct:14,desir:[2,5,14,16,17],desired_mech:16,dest:14,dest_addr:17,destin:[13,14,17],destroi:14,detail:[2,3,14,17,18],determin:[2,13,14,17],determinist:9,develop:13,dialog:17,dict:[0,2,3,4,6,14,15],dictionari:[2,6],did:[14,15],didn:[13,14],differ:[8,14,15,17],diffi:7,difficult:17,digest:17,dimens:13,direct:[2,14,17,18],directli:[2,3,17],directori:14,disabl:[2,3,17],disallow:2,discover:3,disk:14,displai:13,dispos:2,disrupt:17,distribut:17,doc:14,docstr:15,document:[],doe:[1,2,5,9,13,14,17],doesn:[2,5,6,9,14,16,17],don:[2,6,9,13,14,17],done:[1,3,10,13,17,18],down:[2,9],download:14,dramat:14,driven:12,dss:[],dsskei:[0,8,17],due:[3,14,17],dumb:17,dumber:17,dump:17,dure:[6,10,13,17],each:[3,4,13,14,17],eas:17,easi:14,ecdsakei:8,echo:[13,17],effect:[2,17],effici:[2,14],either:[0,2,3,6,11,13,14,16,18],elaps:[1,2],els:[2,6,13,14,17],empti:[0,1,5,6,13,14,17],emul:[2,3,14],enabl:13,enable_auth_gssapi:13,encod:[5,9,14,16],encount:[5,14,15],encrypt:[0,8,17,18],end:[0,2,4,5,11,13,14,17],enough:2,ensur:2,enter:17,entir:[0,2,5,14],entri:[2,4,6,14],enumer:0,env:13,environ:[2,3,13],environn:0,eof:[2,5,13,14],eoferror:[10,17],epoch:14,equal:8,equival:[2,6,8,9,14],errno:[14,15],error:[0,2,3,6,7,8,13,14,15,16,17],escap:14,especi:14,establish:[0,3],etc:[2,9,14,15,17],even:[0,5,14],event:[1,11,17],ever:[2,10,17],everi:10,exactli:[2,13,14],examin:3,exampl:[0,2,3,8,13,14,15,17],exceedingli:13,except:[0,1,2,3,5,6,7,14,15,17],exchang:[],exec_command:[0,2,3],exectu:2,execut:[0,2,3,10,12,13],exist:[0,2,3,6,8,14,17],exit:[0,2,13],exit_status_readi:2,expandus:6,expans:4,expect:[0,2,6,14,15,17,18],expected_kei:15,explan:15,explicit:[3,4],explicitli:14,expos:[9,15],express:[1,2],extend:14,extens:[9,13,14,17],extra:[13,17],facto:4,factor:14,factori:[0,8],fail:[2,3,5,13,15,16,17],failur:[3,13,14,15,17],fake:[0,2],fallback:17,fals:[0,1,2,3,5,6,8,10,13,14,16,17],famili:15,far:14,faster:2,featur:[9,14],fed:1,feed:1,feeder:1,fetch:[2,9,14,17],few:10,fewer:14,fget:[5,14],field:[14,17],file:[],file_obj:[0,4,8],file_s:14,filenam:[0,3,6,8,13,14,17],fileno:2,filesystem:14,fill:[2,8,14],find:[0,2,3,6,14],fine:[4,14],fingerprint:[0,8],finish:[2,13,18],finish_subsystem:13,firewal:17,first:[2,4,5,14,17],fit:17,flag:[5,14],flag_binary:[5,14],flow:[2,18],flush:[2,5,14],folder:14,follow:[2,3,13,14,17,18],foo:14,forc:[5,14,17],forev:[1,13,17],fork:[12,17],form:[6,14,16,17],format:[0,4,6,8,9,14],forward:[0,2,13,17],forward_agent_handl:0,found:[0,3,6,14,15],fqdn:[4,16],fraction:0,from:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],from_lin:6,from_private_kei:[0,8],from_private_key_fil:[0,8],from_stat:14,from_transport:14,fseek:5,full:14,func:[2,14,17],further:[2,13],futur:[1,2,5,13,14],garbag:[2,3],gener:[1,2,4,8,13,14,15,16,17],gentoo:17,get:[2,3,14,16,17],get_adaptive_int:9,get_allowed_auth:[13,17],get_bann:17,get_base64:[0,8],get_binari:9,get_bit:[0,8],get_boolean:9,get_byt:9,get_channel:14,get_connect:0,get_env:0,get_except:17,get_fingerprint:[0,8],get_hexdump:17,get_host_kei:3,get_hostnam:4,get_id:[0,2,13],get_int64:9,get_int:9,get_kei:0,get_list:9,get_log_channel:17,get_mpint:9,get_nam:[2,8,17],get_pti:[2,3],get_remaind:9,get_remote_server_kei:17,get_security_opt:17,get_serv:13,get_server_kei:17,get_so_far:9,get_str:9,get_text:9,get_transport:[0,2,3],get_usernam:17,getcwd:14,getfo:14,getpeernam:[2,17],gettimeout:[2,14],gid:14,git:0,give:17,given:[0,1,2,3,4,6,8,13,14,15,16,17],global:[13,17],global_request:17,gmt:14,goe:14,good:[3,13,14,17],got_kei:15,grant:13,greater:14,group14:7,group:[7,14,17],gss:[],gss_auth:[3,17],gss_authent:13,gss_deleg_cr:[3,16,17],gss_host:[3,17],gss_kex:[3,16,17],gssapi:[13,16,17],gssauth:16,gssexception:16,guarante:15,habit:2,had:[9,17],half:17,halv:2,hand:0,handi:14,handl:[],handler:[2,13,14,17],handshak:10,handshake_timed_out:10,hang:[2,3,14],happen:[0,5,17],hasattr:14,hash:[6,14,17],hash_algorithm:14,hash_host:6,hasn:2,have:[1,2,5,6,9,13,14,17,18],haven:[9,14,17],hazmat:8,height:[2,3,13],height_pixel:[2,3],held:0,hellman:7,helper:[0,14],here:13,hex:17,hexadecim:2,hexdump:17,high:[3,18],hint:14,hit:[5,14,17],home:14,hook:13,host:[],hostkei:[3,6,17],hostkeyentri:6,hostnam:[3,4,6,15,16,17],how:[2,9,12,14,18],howev:14,http:[0,13],hundr:2,id_dsa:3,id_ecdsa:3,id_rsa:3,idea:[5,13,14],ident:[0,2,9,14],identic:[5,14],identif:0,identifi:[0,13],ignor:[5,14,17],immedi:[1,2,5,14,17],implement:[],impli:[14,15],importerror:16,imposs:11,improv:14,inbound:10,includ:[5,6,13,14,17,18],incom:[2,7,17],incompat:0,incomplet:[5,14],incorrect:17,increment:14,indefinit:[2,13],independ:2,indic:[0,13,14,17],indicat:1,indistinguish:2,individu:[6,14],infinit:9,info:[14,17,18],inform:[4,13,14,17],inherit:0,initi:[0,16],initial:[2,16],input:[3,5,12,14],instanc:[2,3,8,12,14,15,17],instanti:0,instantli:2,instead:[3,5,12,14],instruct:[13,17],integ:[0,9,14],intend:[5,14],interact:[2,3,13,14,17],interactivequeri:13,interest:18,interfac:[0,2,3,5,12,13,14],intern:[5,14,15],internet:14,interpret:[2,3,13],interv:[10,17],invalid:[0,8],invok:[0,2,3,13],invoke_shel:[2,3],invoke_subsystem:2,ioerror:[0,3,5,6,8,14],ip_address:13,ipv4:15,irrit:2,is_act:[13,17],is_al:0,is_authent:17,isaliv:0,isn:[2,3,13,15,17],issu:14,item:[9,13],iter:[5,14],itself:[5,14],januari:14,join:0,judg:[0,8],junk:17,just:[0,6,9,13,14,16,17],keep:[10,17],keepal:[10,17],kei:[],kept:[5,14,17],kerbero:[3,13,16,17],kex:17,kex_gss:[7,13],kexgssgex:7,kexgssgroup14:7,kexgssgroup1:7,key_filenam:3,key_typ:17,keyboard:[13,17],keyex:16,keytyp:6,keyword:[14,17],kind:[2,3,13,17,18],know:17,knowledg:2,known:[3,6,9,13,14,17],krb5:[13,16],krb5_kuserok:13,krb5_princip:13,kwarg:[2,14,17],kwd:2,larg:[2,10,14,17],larger:2,last:[2,3,14,17],latenc:14,later:[8,14,17],latter:13,launch:0,lazyfqdn:4,lead:6,least:[1,2,10],left:[0,3],len:[5,14,17],length:[1,2,5,9,14,16],less:[2,5,14],level:[2,3,9,11,14,17,18],librari:13,like:[0,2,3,4,5,6,8,11,12,13,14,15,17,18],line:[5,6,10,14,15],lineno:6,link:[14,17],linux:13,list:[0,1,3,4,5,7,8,9,10,11,13,14,15,16,17],list_fold:14,listdir:14,listdir_attr:14,listdir_it:14,listen:[13,17],liter:4,littl:14,live:[0,17],load:[3,6,13,17],load_host_kei:3,load_server_moduli:17,load_system_host_kei:3,local:[0,2,3,13,14,17],localpath:14,locat:17,lock:10,log:[3,10,13,17],logfil:2,logic:[13,15],login:16,longer:[2,17],longnam:14,look:[4,6],look_for_kei:3,lookup:[4,6],loop:13,lost:0,low:9,lower:3,lowercas:4,lstat:14,mac_engin:10,mac_kei:10,mac_siz:10,machin:[0,12],machineri:14,made:[0,2,3,4,8,13,14,15,17],magic:[0,2,8],mai:[0,1,2,3,5,9,11,12,13,14,15,17,18],main:[0,18],maintain:18,make:[2,11,12,13,14,17],make_or_pip:11,makefil:2,makefile_stderr:2,malici:14,man:[4,13],manag:[2,3,12,14,17],mangl:10,mani:[0,2,7,12,14,17],manipul:3,manual:0,map:14,mask:14,match:[4,5,14,15,18],max:[14,17],max_packet_s:[14,17],maximum:[1,2,5,14],md5:[0,8,14],mean:[1,2,14],meant:[2,14,17],mechan:[3,16],memor:2,merg:[3,6],messag:[],method:[0,1,2,3,6,7,8,9,13,14,16,17],mic:[16,17],mic_token:16,microsoft:16,might:[13,14,17],mimic:14,mimick:14,mirror:14,misguid:17,miss:[3,14],missing_host_kei:3,missinghostkeypolici:3,mit:[2,16],mix:[5,14],mkdir:14,mode:[2,5,7,13,14,16,17],modif:14,modifi:[3,14,17],modul:[0,2,7,14,16,17],moduli:17,more:[0,1,2,4,6,13,14,15,17,18],most:[0,3,5,14,15],mostli:[0,2,14],move:[5,14],movement:5,mp3:13,mp3handler:13,mpint:9,msg:[0,8,13],mtime:14,much:[2,13,14],multi:17,multipl:[0,3,6,13,14,15,17],multiplex:17,must:[0,2,3,6,11,13,14,17],name:[0,2,3,5,6,8,13,14,16,17],nat:17,nbyte:[1,2],nearli:11,necessari:[0,2,8,10,14],need:[0,1,2,9,10,12,13,15,17,18],need_rekei:10,needrekeyexcept:10,neg:[5,14,17],negot:17,negoti:[6,10,14,15,16,17,18],network:[2,17],never:[2,17],newli:14,newlin:[5,6,14],newpath:14,next:[5,7,9,14,17],nois:17,non:[0,2,5,8,9,14,16],none:[0,1,2,3,4,5,6,8,9,13,14,15,16,17],nonneg:[1,2],nonzero:0,normal:[0,1,2,4,9,11,14,15,17],normpath:14,notat:14,note:[2,13,14,16],noth:[0,2,5,8,13,14],notic:[2,13],notimplementederror:16,novalidconnectionserror:15,now:13,nullhostkei:7,number:[0,1,2,5,8,9,10,13,14,16,17],numer:14,o_append:14,o_creat:14,o_excl:14,o_rdonly:14,o_rdwr:14,o_trunc:14,o_wronly:14,obei:[1,14],obj:[9,14],object:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18],obscur:17,obtain:[0,4],obviou:14,occasion:14,occur:[0,2,3,5,7,14],octal:14,off:[10,14,17],offset:[5,14],often:[3,17],oid:16,okai:[5,10,13,14],old:3,oldpath:14,omit:[2,5,14],onc:[0,1,2,13,14,17],once:[14,18],one:14,onli:[0,2,3,4,5,9,11,13,14,15,16,17],only:[2,3,8,10,14,17],open:[0,2,3,5,13,14,15,17],open_channel:17,open_failed_administratively_prohibited:13,open_failed_connect_failed:13,open_failed_resource_shortage:13,open_failed_unknown_channel_type:13,open_forward_agent_channel:17,open_forwarded_tcpip_channel:17,open_onli:2,open_sess:[0,17],open_sftp:3,open_sftp_cli:17,open_succeeded:13,open_x11_channel:[13,17],openssh:[2,3,4,6,14,17],oper:[0,1,2,5,14,17],option:[0,1,2,3,4,5,6,8,13,14,17],order:[3,6,14,17],organ:18,origin:[6,13,14,17],origin_addr:17,origin_port:17,oserror:14,other:[],otherwis:[0,1,2,6,8,13,14,16,17],out:[0,1,5,9,10,14],outbound:[2,10],outgo:2,output:[2,3,12,15],outsid:14,over:[2,5,14,17,18],overal:14,overrid:[3,13,14,17],overridden:14,overwrit:13,own:[5,13],owner:14,ownership:14,packet:[],page:[4,13],pair:[0,6],paket:7,pam:17,param:[2,14],paramet:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17],paramiko:[],pars:[4,6,7,9],parse_next:7,part:[0,1,2,8,17],partial:[2,14,15,17],partialauthent:15,particular:2,partit:14,pass:[2,3,8,9,10,12,13,14,17,18],password:[0,3,8,13,15,17,18],passwordrequiredexcept:[0,8,15],past:14,path:[6,13,14,17],pathnam:14,pattern:4,paus:17,payload:17,pend:[2,10,14],peopl:[2,9],per:[0,14],perform:[2,3,13,14,16,17],period:[1,2],permiss:[14,17],permit:17,peroid:17,pick:[13,17],pipelin:14,pipetimeout:1,pixel:[2,3,13],pixelheight:13,pixelwidth:13,pkei:[0,3,6,8,13,15,17],place:13,plain:[3,17],plattform:13,pleas:18,plu:3,point:0,polici:3,poll:2,popen:12,port:[0,2,3,4,13,15,17],posit:[5,9,14],posix:[3,4,6,14,17],possibl:[2,5,6,10,12,13,14,15,17],practic:[2,3],pre:[3,14],precis:9,predat:[5,14],prefer:[13,17],prefetch:14,prematur:17,presenc:14,presens:14,present:[0,2,3,5,14,15],preserv:6,pretti:17,previou:[2,13,17],previous:[2,3,13,14,17],primari:[],primarili:[2,4,14],prime:17,primit:8,princip:13,print:17,prior:[1,2],prioriti:3,privat:[0,3,8,15,17,18],probabl:[3,13,14],problem:2,proce:2,process:[0,2,4,10,13,17],produc:[5,14],program:[0,12],progress_func:8,project:18,prompt:[13,17],prompt_list:17,protocol:[],provid:[2,3,4,7,13,14,15,16,18],proxi:[0,12,14,15],proxycommandfailur:15,pseudo:[2,3,13,16],psuedo:13,pty:[2,13],ptype:7,publickei:[13,15],purpos:0,put:14,putfo:14,pycrypto:[],python:[0,2,3,5,8,9,10,13,14,16,18],queri:[4,13],question:[13,17],queu:2,queue:[2,17],quickli:14,race:3,rais:[0,1,2,3,5,6,8,10,14,15,16,17],random:[2,5,14,17],rare:17,rather:17,raw:9,reach:[1,5,10,14],read:[0,1,2,3,4,5,6,8,10,11,12,14,17],read_ahead:14,read_al:10,read_messag:10,read_readi:1,readabl:[5,11,14],readfil:14,readi:[1,2],readinto:[5,14],readlin:[5,10,14],readlink:14,readv:14,real:[2,11,15],realli:[2,9,14],realpath:14,reason:[13,15],receiv:[1,2,3,12,16,17,18],recent:17,recogn:[0,8,17],recommended:2,recv:[2,12,17],recv_exit_statu:2,recv_readi:2,recv_stderr:2,recv_stderr_readi:2,recv_token:16,recycl:0,refer:[1,3,4,7,8,9,10,11,13,14,15,16,17],reflect:2,refus:[13,17],regener:9,regist:13,regular:12,reject:[2,3,13,17],rejectpolici:3,rekei:10,rel:[0,5,8,14],reli:3,remain:[2,5,9,14],remaind:14,remot:[0,2,3,13,14,17,18],remote_chanid:2,remotepath:14,remov:[6,14],renam:14,renegoti:17,renegotiate_kei:17,replac:[2,3,6],report:13,repositori:0,repres:[0,1,2,3,7,8,14,15,17],represent:[2,3,4,6,8,9,14,17],request:[0,2,3,4,12,13,14,17,18],request_forward_ag:[0,2],request_port_forward:17,request_x11:2,requir:[2,3,7,13,14,17],reset:[2,10],resiz:[2,13],resize_pti:2,resolut:15,resolv:14,respect:[2,14],respond:[13,17],respons:[2,13,14,17,18],restrict:14,result:[1,2,13,14],retreiv:0,retri:15,retriev:[2,13,14],reus:2,reusabl:5,reveal:[0,8,14],rewind:9,rfc:[2,7,16],rich:14,right:2,rmdir:14,round:[5,14],roundtrip:14,rout:13,rsa:[],rsakei:[0,8,17],rsync:14,rtype:9,rule:4,run:[0,2,3,12,13],runtimeerror:0,safe:17,sai:[7,17],sake:14,salt:6,same:[0,2,3,13,14,15,17],sampl:17,save:[3,6,16,17],save_client_cr:16,save_host_kei:3,saver:14,screen:[2,13],screen_numb:[2,13],sdctr:10,search:3,second:[0,1,2,3,10,14,17],secp256r1:8,secret:[0,8],section:[4,7,14],secur:[0,2,8,14,17],securityopt:17,see:[0,2,3,13,14,15,16,17,18],seek:[5,14],seekabl:[5,14],segment:14,select:[2,11],self:[5,14],semant:[0,1,2],send:[2,6,12,13,17,18],send_exit_statu:2,send_ignor:17,send_messag:10,send_readi:2,send_stderr:2,sendal:2,sendall_stderr:2,sens:[2,13],sent:[2,12,13,17],separ:[0,1,4,5,9,13,14,17],seq:9,sequenc:[5,9,14,16],seri:[13,14],serv:14,server:[],server_addr:17,server_port:17,serverinterfac:[2,13,14,17],servic:[13,16],session:[0,2,3,13,14,16,17,18],session_end:14,session_id:16,session_start:14,set:[0,1,2,3,4,5,10,11,13,14,16,17],set_combine_stderr:2,set_environment_vari:[2,3],set_ev:1,set_file_attr:14,set_gss_host:17,set_hexdump:17,set_inbound_ciph:10,set_keepal:[10,17],set_log:10,set_log_channel:[3,17],set_missing_host_key_polici:3,set_nam:2,set_outbound_ciph:10,set_pipelin:14,set_servic:16,set_subsystem_handl:[13,14,17],set_usernam:16,setblock:[2,14],setter:[16,17],settimeout:[2,3,14,17],setup:14,sftp:[],sftp_:14,sftp_attr:14,sftp_client:14,sftp_eof:14,sftp_file:14,sftp_handl:14,sftp_no_such_file:14,sftp_ok:14,sftp_permission_denied:14,sftp_server:14,sftp_si:14,sftpattribut:14,sftpclient:[3,14,17],sftpfile:14,sftphandl:14,sftpserver:14,sftpserverinterfac:14,sha1:14,sha:14,share:[16,17],shell:[2,3,13],shortcut:[14,17],shorter:12,should:[0,2,3,4,6,8,10,12,13,14,17],shouldn:[2,13],show:2,shrink:14,shut:2,shutdown:[2,3],shutdown_read:2,shutdown_writ:2,side:[0,2,13,14,17,18],sign:[0,8,17],sign_ssh_data:8,signal:10,signatur:[0,2,8,13,18],signifi:14,signific:[0,8],signtatur:13,silent:[2,3],similar:[13,14],similarli:2,simpl:17,simpler:[5,17],simpli:[0,2,3,17],simul:2,sinc:[4,5,14,17],singl:[2,6,9,13,14,15,16,17],single_connect:[2,13],site:18,situat:[2,3,14,17],size:[3,5,12,14,17],sizehint:[5,14],slack:14,sleep:13,slightli:2,small:[2,13],sock:[3,14,17],socket:[0,1,2,3,10,11,12,14,15,17,18],some:[2,3,5,9,13,14,15,17],someth:[13,14,17],sometim:17,sort:2,sourc:[14,17],space:2,speak:0,special:14,specif:[3,4,13,14,15,17],specifi:[0,1,2,5,13,14,15,16,17],speed:14,split:6,src_addr:17,ssh2:[2,8,9,15,16,17],ssh_accept_sec_context:16,ssh_auth_sock:0,ssh_check_mech:16,ssh_check_mic:16,ssh_config:4,ssh_except:15,ssh_fxp_readdir:14,ssh_get_mic:16,ssh_gss:[13,16],ssh_gss_oid:16,ssh_init_sec_context:16,sshclient:[0,3,18],sshconfig:4,sshexception:[0,2,3,8,10,14,15,16,17],sspi:[7,16,17],st_atim:14,st_gid:14,st_mode:14,st_mtime:14,st_size:14,st_uid:14,stage:17,stall:2,standard:[4,12,14,17],start:[0,3,7,10,13,14,17,18],start_client:[17,18],start_handshak:10,start_kex:7,start_serv:[17,18],start_subsystem:13,stat:14,state:[6,13],statist:14,statu:[2,10],stderr:[2,3,13],stdin:[2,3,13],stdio:[5,14],stdout:[2,3,13,17],step:17,still:[0,13,17],stop:[2,14,17],stopiter:[5,14],store:[0,4,6,8,14,15,16,17],str:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],stream:[2,3,5,9,17],string:[0,1,2,4,5,6,8,9,12,13,14,16,17],structur:[3,14],style:[3,5,6,14],sub:17,subclass:[0,2,3,8,13,14,15,17],submethod:[13,17],subprocess:12,subsequ:[2,17],substitut:4,subsystem:[2,13,14,17],subsystemhandl:[13,14,17],subsytem:13,succe:[0,2,13,14,17],succeed:15,success:[13,14,16,17],successfulli:[13,17],suffic:14,suffici:2,suitabl:[8,17],suppli:[13,17],support:[],sure:[2,13],surpris:2,swap:17,symbol:14,symlink:14,symmetr:17,synchron:1,system:[3,14,17],tabl:[6,18],take:[3,13],taken:6,talk:12,target:[3,14,16,17],target_path:14,task:3,tcp:[3,13,17],tcpip:17,tell:[5,10,14],term:[2,3,13],termin:[0,2,3,7,13,17],terminolog:8,test:17,text:[5,6,14,15,17],than:[0,2,12,14,17],thei:[2,3,5,8,9,13,14,17],them:[2,3,5,13,14,17],themselv:3,therefor:0,thereof:0,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],thing:14,those:[3,14,17],thread:[0,1,2,10,13,14,17],through:[0,2,3,8,13,14],thrown:[0,7,8,14,15,17],thu:[3,7,14,15,17],time:[0,2,3,6,10,14],timeout:[0,1,2,3,10,14,17],timer:10,titl:17,to_lin:6,togeth:[11,14],token:[16,17],too:[2,4,13,14],top:14,total:[5,14],traffic:[12,17],traffix:17,trail:[5,6,14],transfer:[14,17],translat:14,transmit:2,transport:[],trap:14,travers:17,treat:[5,6,14],trigger:[10,11,17],trivial:[9,11],truncat:14,trust:17,tunnel:[2,13,17],tupl:[0,3,13,14,15,17],turn:[3,5,10,14,17],tweak:17,two:[0,2,11,17],type:[0,2,3,5,6,7,8,9,13,14,15,16,17],typeerror:17,typic:[3,5,14],uid:14,umask:14,unabl:2,undefin:17,under:0,underii:14,underli:[3,5,13,14,15,17],understand:2,undon:5,unfortun:6,unhandl:0,unheard:9,unicod:14,unifi:15,uniqu:[2,13],unix:[0,2,13,14,16],unknown:[3,13,17],unless:[2,13],unlike:[2,5,14],unlink:14,unlock:[3,15],unopen:2,unprint:9,unsign:9,until:[0,2,14,17],unuse:8,update:2,update_environ:2,upload:14,upon:[0,17],usag:18,use:[5,14,17],use_compress:17,used:14,useless:[0,8,13],user:[3,4,13,16,17,18],usernam:[0,3,13,16,17],using:12,usual:[2,6,13,14,17],utf:[5,14],utim:14,val:8,valid:[2,6,13],validate_point:8,valu:[0,1,2,4,9,10,13,14,15,16,17],valueerror:[5,17],vari:14,variabl:[0,2,3,4,13,15,16],variou:14,veri:17,verif:[17,18],verifi:[0,2,3,6,8,13,14,16,17],verify_ssh_sig:[0,8],version:[2,3,4,6,7,13,14,15,16,17],via:[2,3,4,13,14,17],vt100:[2,3,13],wai:[2,3,11,13,14,17],wait:[0,1,2,3,10,14,17],want:[0,2,3,13,14,17],warn:[2,3],warningpolici:3,wasn:10,weak:[1,3,4,7,8,9,10,11,13,14,15,16],websit:18,were:[6,15],weren:9,what:[5,13,14,15,18],when:[0,1,2,3,5,6,9,11,13,14,15,17],whenc:5,whenev:[2,13,17],where:[11,14,17],whether:[0,2,13,14,17],which:[0,1,2,3,6,8,11,12,13,14,15,17,18],whitespac:6,who:[2,16,17],whole:[5,14],whose:[0,14,15],width:[2,3,13],width_pixel:[2,3],wildcard:4,window:[2,3,4,6,11,14,16,17],window_s:[2,14,17],windowspip:11,winsock:11,wish:[2,13],within:[3,5,7,13,14],without:[2,3,9,13,14,17],won:[2,13,14],work:[0,2,4,9,13,14,16],workaround:14,would:[0,1,2,13,14,17],wrap:[2,3,11,12,14,15],wrapper:[2,17],writabl:[5,14],write:[0,2,5,6,8,9,10,11,12,14,17],write_private_kei:[0,8],write_private_key_fil:[0,8],writefil:14,writelin:[5,14],written:[2,3,5,10,14,17],wrong:14,www:13,x11:[2,13,17],xreadlin:[5,14],yet:[2,5,9,14,17],you:[0,1,2,3,9,13,14,16,17,18],your:[2,3,13,14,17],zero:[1,2,5,9,14]},titles:["SSH agents","Buffered pipes","Channel","Client","Configuration","Buffered files","Host keys /
known_hosts</span></code> files","GSS-API key exchange","Key handling","Message","Packetizer","Cross-platform pipe implementations","
ProxyCommand</span></code> support","Server implementation","SFTP","Exceptions","GSS-API authentication","Transport","Welcome to Paramiko’s documentation!"],titleterms:{"class":[8,18],"function":18,agent:0,api:[7,16,18],authent:[16,18],buffer:[1,5],channel:2,client:3,configur:4,core:18,cross:11,document:18,dsa:8,dss:8,ecdsa:8,exception:15,exchang:7,file:[5,6],gss:[7,16],handl:8,host:6,implement:[11,13],kei:[6,7,8,18],known_host:6,messag:9,miscellani:18,other:18,packet:10,paramiko:18,parent:8,pipe:[1,11],platform:11,primari:18,protocol:18,proxycommand:12,rsa:8,server:13,sftp:14,ssh:[0,18],support:12,transport:17,welcom:18}})
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/_version.py new/paramiko-2.1.1/paramiko/_version.py
--- old/paramiko-2.0.2/paramiko/_version.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/_version.py 2016-12-13 01:12:48.000000000 +0100
@@ -1,2 +1,2 @@
-__version_info__ = (2, 0, 2)
+__version_info__ = (2, 1, 1)
__version__ = '.'.join(map(str, __version_info__))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/_winapi.py new/paramiko-2.1.1/paramiko/_winapi.py
--- old/paramiko-2.0.2/paramiko/_winapi.py 2016-07-26 03:07:05.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/_winapi.py 2016-12-06 05:51:49.000000000 +0100
@@ -89,7 +89,7 @@
GMEM_MOVEABLE = 0x2
GlobalAlloc = ctypes.windll.kernel32.GlobalAlloc
-GlobalAlloc.argtypes = ctypes.wintypes.UINT, ctypes.c_ssize_t
+GlobalAlloc.argtypes = ctypes.wintypes.UINT, ctypes.c_size_t
GlobalAlloc.restype = ctypes.wintypes.HANDLE
GlobalLock = ctypes.windll.kernel32.GlobalLock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/channel.py new/paramiko-2.1.1/paramiko/channel.py
--- old/paramiko-2.0.2/paramiko/channel.py 2016-07-26 05:41:06.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/channel.py 2016-12-13 01:12:11.000000000 +0100
@@ -283,6 +283,58 @@
m.add_int(height_pixels)
self.transport._send_user_message(m)
+ @open_only
+ def update_environment(self, environment):
+ """
+ Updates this channel's remote shell environment.
+
+ .. note::
+ This operation is additive - i.e. the current environment is not
+ reset before the given environment variables are set.
+
+ .. warning::
+ Servers may silently reject some environment variables; see the
+ warning in `set_environment_variable` for details.
+
+ :param dict environment:
+ a dictionary containing the name and respective values to set
+ :raises SSHException:
+ if any of the environment variables was rejected by the server or
+ the channel was closed
+ """
+ for name, value in environment.items():
+ try:
+ self.set_environment_variable(name, value)
+ except SSHException as e:
+ err = "Failed to set environment variable \"{0}\"."
+ raise SSHException(err.format(name), e)
+
+ @open_only
+ def set_environment_variable(self, name, value):
+ """
+ Set the value of an environment variable.
+
+ .. warning::
+ The server may reject this request depending on its ``AcceptEnv``
+ setting; such rejections will fail silently (which is common client
+ practice for this particular request type). Make sure you
+ understand your server's configuration before using!
+
+ :param str name: name of the environment variable
+ :param str value: value of the environment variable
+
+ :raises SSHException:
+ if the request was rejected or the channel was closed
+ """
+ m = Message()
+ m.add_byte(cMSG_CHANNEL_REQUEST)
+ m.add_int(self.remote_chanid)
+ m.add_string('env')
+ m.add_boolean(False)
+ m.add_string(name)
+ m.add_string(value)
+ self.transport._send_user_message(m)
+
def exit_status_ready(self):
"""
Return true if the remote process has exited and returned an exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/client.py new/paramiko-2.1.1/paramiko/client.py
--- old/paramiko-2.0.2/paramiko/client.py 2016-07-26 03:07:05.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/client.py 2016-12-13 01:12:11.000000000 +0100
@@ -335,7 +335,7 @@
t.set_log_channel(self._log_channel)
if banner_timeout is not None:
t.banner_timeout = banner_timeout
- t.start_client()
+ t.start_client(timeout=timeout)
ResourceManager.register(self, t)
server_key = t.get_remote_server_key()
@@ -398,7 +398,14 @@
self._agent.close()
self._agent = None
- def exec_command(self, command, bufsize=-1, timeout=None, get_pty=False):
+ def exec_command(
+ self,
+ command,
+ bufsize=-1,
+ timeout=None,
+ get_pty=False,
+ environment=None,
+ ):
"""
Execute a command on the SSH server. A new `.Channel` is opened and
the requested command is executed. The command's input and output
@@ -411,6 +418,14 @@
Python
:param int timeout:
set command's channel timeout. See `Channel.settimeout`.settimeout
+ :param dict environment:
+ a dict of shell environment variables, to be merged into the
+ default environment that the remote command executes within.
+
+ .. warning::
+ Servers may silently reject some environment variables; see the
+ warning in `.Channel.set_environment_variable` for details.
+
:return:
the stdin, stdout, and stderr of the executing command, as a
3-tuple
@@ -421,6 +436,8 @@
if get_pty:
chan.get_pty()
chan.settimeout(timeout)
+ if environment:
+ chan.update_environment(environment)
chan.exec_command(command)
stdin = chan.makefile('wb', bufsize)
stdout = chan.makefile('r', bufsize)
@@ -428,7 +445,7 @@
return stdin, stdout, stderr
def invoke_shell(self, term='vt100', width=80, height=24, width_pixels=0,
- height_pixels=0):
+ height_pixels=0, environment=None):
"""
Start an interactive shell session on the SSH server. A new `.Channel`
is opened and connected to a pseudo-terminal using the requested
@@ -440,6 +457,7 @@
:param int height: the height (in characters) of the terminal window
:param int width_pixels: the width (in pixels) of the terminal window
:param int height_pixels: the height (in pixels) of the terminal window
+ :param dict environment: the command's environment
:return: a new `.Channel` connected to the remote shell
:raises SSHException: if the server fails to invoke a shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/config.py new/paramiko-2.1.1/paramiko/config.py
--- old/paramiko-2.0.2/paramiko/config.py 2016-07-25 20:58:23.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/config.py 2016-12-13 00:23:15.000000000 +0100
@@ -209,6 +209,7 @@
],
'proxycommand':
[
+ ('~', homedir),
('%h', config['hostname']),
('%p', port),
('%r', remoteuser)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/ecdsakey.py new/paramiko-2.1.1/paramiko/ecdsakey.py
--- old/paramiko-2.0.2/paramiko/ecdsakey.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/ecdsakey.py 2016-12-13 01:09:49.000000000 +0100
@@ -258,7 +258,7 @@
key = serialization.load_der_private_key(
data, password=None, backend=default_backend()
)
- except ValueError as e:
+ except (ValueError, AssertionError) as e:
raise SSHException(str(e))
self.signing_key = key
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/pkey.py new/paramiko-2.1.1/paramiko/pkey.py
--- old/paramiko-2.0.2/paramiko/pkey.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/pkey.py 2016-12-13 01:09:49.000000000 +0100
@@ -333,8 +333,7 @@
:raises IOError: if there was an error writing the file.
"""
- with open(filename, 'w', o600) as f:
- # grrr... the mode doesn't always take hold
+ with open(filename, 'w') as f:
os.chmod(filename, o600)
self._write_private_key(f, key, format)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/proxy.py new/paramiko-2.1.1/paramiko/proxy.py
--- old/paramiko-2.0.2/paramiko/proxy.py 2016-07-26 06:03:49.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/proxy.py 2016-12-06 04:56:45.000000000 +0100
@@ -21,7 +21,6 @@
import os
from shlex import split as shlsplit
import signal
-from subprocess import Popen, PIPE
from select import select
import socket
import time
@@ -49,6 +48,9 @@
:param str command_line:
the command that should be executed and used as the proxy.
"""
+ # NOTE: subprocess import done lazily so platforms without it (e.g.
+ # GAE) can still import us during overall Paramiko load.
+ from subprocess import Popen, PIPE
self.cmd = shlsplit(command_line)
self.process = Popen(self.cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
bufsize=0)
@@ -107,5 +109,14 @@
def close(self):
os.kill(self.process.pid, signal.SIGTERM)
+ @property
+ def closed(self):
+ return self.process.returncode is not None
+
+ @property
+ def _closed(self):
+ # Concession to Python 3 socket-like API
+ return self.closed
+
def settimeout(self, timeout):
self.timeout = timeout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paramiko-2.0.2/paramiko/transport.py new/paramiko-2.1.1/paramiko/transport.py
--- old/paramiko-2.0.2/paramiko/transport.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/transport.py 2016-12-13 01:12:11.000000000 +0100
@@ -1,4 +1,5 @@
# Copyright (C) 2003-2007 Robey Pointer