Repository URL to install this package:
|
Version:
2.10.3 ▾
|
docutils.nodesdocument)}( rawsource children]h section)}(hhh](h title)}(hServer implementationh]h TextServer implementation
}(parenth _documenthsourceNlineNuba
attributes}(ids]classes]names]dupnames]backrefs]utagnamehhhhhh:/home/jforcier/Code/oss/paramiko/sites/docs/api/server.rsthKubsphinx.addnodesindex)}(hhh]h}(h ]h"]h$]h&]h(]entries](singleparamiko.server (module)module-paramiko.serverhNtauh*h-hhhhhP/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.serverhKubh paragraph)}(hB`.ServerInterface` is an interface to override for server support.h](h,pending_xref)}(h`.ServerInterface`h]h literal)}(hhIh]hServerInterface
}(hhMhhhNhNubah}(h ]h"](xrefpypy-objeh$]h&]h(]uh*hKhhGubah}(h ]h"]h$]h&]h(]reftypeobj refdomainhXrefexplicit py:moduleparamiko.serverpy:classNrefspecific reftargetServerInterfacerefdoc
api/serverrefwarnuh*hEhh+hKhhAubh0 is an interface to override for server support.
}(hhAhhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hP/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.serverhKhhhhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:*ServerInterface (class in paramiko.server)paramiko.server.ServerInterfacehNtauh*h-hhhhhNhNubh,desc)}(hhh](h,desc_signature)}(hServerInterfaceh](h,desc_annotation)}(hclass h]hclass
}(hhhhhNhNubah}(h ]h"]h$]h&]h(] xml:spacepreserveuh*hhhhhh`/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterfacehNubh,desc_addname)}(hparamiko.server.h]hparamiko.server.
}(hh©hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h§hhhhhh¦hNubh, desc_name)}(hhh]hServerInterface
}(hh¹hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hhhhhh¦hNubeh}(h ]hah"]h$]hah&]h(]firstmoduleparamiko.serverclasshfullnamehuh*hhhhhhh¦hNubh,desc_content)}(hhh](h@)}(hXThis class defines an interface for controlling the behavior of Paramiko
in server mode.h]hXThis class defines an interface for controlling the behavior of Paramiko
in server mode.
}(hhÖhhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h`/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterfacehKhhÓhhubh@)}(hMethods on this class are called from Paramiko's primary thread, so you
shouldn't do too much work in them. (Certainly nothing that blocks or
sleeps.)h]hMethods on this class are called from Paramiko’s primary thread, so you
shouldn’t do too much work in them. (Certainly nothing that blocks or
sleeps.)
}(hhåhhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hhähKhhÓhhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:@check_channel_request() (paramiko.server.ServerInterface method)5paramiko.server.ServerInterface.check_channel_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h3ServerInterface.check_channel_request(kind, chanid)h](h¸)}(hcheck_channel_requesth]hcheck_channel_request
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj hhhv/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_requesthNubh,desc_parameterlist)}(hkind, chanidh](h,desc_parameter)}(hkindh]hkind
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(hchanidh]hchanid
}(hj- hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj hhhj hNubeh}(h ]hÿah"]h$]hÿah&]h(]h̉h͌paramiko.serverhÏhhЌ%ServerInterface.check_channel_requestuh*hhj hhhj hNubhÒ)}(hhh](h@)}(hÛDetermine if a channel request of a given type will be granted, and
return ``OPEN_SUCCEEDED`` or an error code. This method is
called in server mode when the client requests a channel, after
authentication is complete.h](hKDetermine if a channel request of a given type will be granted, and
return
}(hjL hhhNhNubhL)}(h``OPEN_SUCCEEDED``h]hOPEN_SUCCEEDED
}(hjT hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjL ubh~ or an error code. This method is
called in server mode when the client requests a channel, after
authentication is complete.
}(hjL hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hv/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_requesthKhjI hhubh@)}(hâIf you allow channel requests (and an ssh server that didn't would be
useless), you should also override some of the channel request methods
below, which are used to determine which services will be allowed on
a given channel:h]häIf you allow channel requests (and an ssh server that didn’t would be
useless), you should also override some of the channel request methods
below, which are used to determine which services will be allowed on
a given channel:
}(hjm hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjI hhubh block_quote)}(hÐ- `check_channel_pty_request`
- `check_channel_shell_request`
- `check_channel_subsystem_request`
- `check_channel_window_change_request`
- `check_channel_x11_request`
- `check_channel_forward_agent_request`
h]h bullet_list)}(hhh](h list_item)}(h`check_channel_pty_request`h]h@)}(hj h]hF)}(hj h]hL)}(hj h]hcheck_channel_pty_request
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgjG hihhkcheck_channel_pty_requesthmhnhouh*hEhNhNhj ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhj ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(h`check_channel_shell_request`h]h@)}(hjº h]hF)}(hjº h]hL)}(hjº h]hcheck_channel_shell_request
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj¿ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjÌ refexplicithgjG hihhkcheck_channel_shell_requesthmhnhouh*hEhNhNhj¼ ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhj¸ ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(h!`check_channel_subsystem_request`h]h@)}(hjê h]hF)}(hjê h]hL)}(hjê h]hcheck_channel_subsystem_request
}(hjò hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjï ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjü refexplicithgjG hihhkcheck_channel_subsystem_requesthmhnhouh*hEhNhNhjì ubah}(h ]h"]h$]h&]h(]uh*h?hjl hK
hjè ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(h%`check_channel_window_change_request`h]h@)}(hj h]hF)}(hj h]hL)}(hj h]h#check_channel_window_change_request
}(hj" hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj, refexplicithgjG hihhk#check_channel_window_change_requesthmhnhouh*hEhNhNhj ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhj ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(h`check_channel_x11_request`h]h@)}(hjJ h]hF)}(hjJ h]hL)}(hjJ h]hcheck_channel_x11_request
}(hjR hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjO ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj\ refexplicithgjG hihhkcheck_channel_x11_requesthmhnhouh*hEhNhNhjL ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjH ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(h&`check_channel_forward_agent_request`
h]h@)}(h%`check_channel_forward_agent_request`h]hF)}(hj~ h]hL)}(hj~ h]h#check_channel_forward_agent_request
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgjG hihhk#check_channel_forward_agent_requesthmhnhouh*hEhNhNhj| ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjx ubah}(h ]h"]h$]h&]h(]uh*j hj ubeh}(h ]h"]h$]h&]h(]bullet-uh*j hjl hKhj} ubah}(h ]h"]h$]h&]h(]uh*j{ hjl hKhjI hhubh@)}(hX The ``chanid`` parameter is a small number that uniquely identifies the
channel within a `.Transport`. A `.Channel` object is not created
unless this method returns ``OPEN_SUCCEEDED`` -- once a
`.Channel` object is created, you can call `.Channel.get_id` to
retrieve the channel ID.h](hThe
}(hj· hhhNhNubhL)}(h
``chanid``h]hchanid
}(hj¿ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj· ubhK parameter is a small number that uniquely identifies the
channel within a
}(hj· hhhNhNubhF)}(h`.Transport`h]hL)}(hjÓ h]h Transport
}(hjÕ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjÑ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjß refexplicithgjG hihhjhk Transporthmhnhouh*hEhNhNhj· ubh. A
}(hj· hhhNhNubhF)}(h
`.Channel`h]hL)}(hjõ h]hChannel
}(hj÷ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjó ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgjG hihhjhkChannelhmhnhouh*hEhNhNhj· ubh2 object is not created
unless this method returns
}(hj· hhhNhNubhL)}(h``OPEN_SUCCEEDED``h]hOPEN_SUCCEEDED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj· ubh – once a
}(hj· hhhNhNubhF)}(h
`.Channel`h]hL)}(hj) h]hChannel
}(hj+ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj' ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj5 refexplicithgjG hihhjhkChannelhmhnhouh*hEhNhNhj· ubh! object is created, you can call
}(hj· hhhNhNubhF)}(h`.Channel.get_id`h]hL)}(hjK h]hChannel.get_id
}(hjM hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjI ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjW refexplicithgjG hihhjhkChannel.get_idhmhnhouh*hEhNhNhj· ubh to
retrieve the channel ID.
}(hj· hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjl hKhjI hhubh@)}(hThe return value should either be ``OPEN_SUCCEEDED`` (or
``0``) to allow the channel request, or one of the following error
codes to reject it:h](h"The return value should either be
}(hjq hhhNhNubhL)}(h``OPEN_SUCCEEDED``h]hOPEN_SUCCEEDED
}(hjy hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjq ubh (or
}(hjq hhhNhNubhL)}(h``0``h]h0
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjq ubhQ) to allow the channel request, or one of the following error
codes to reject it:
}(hjq hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjl hKhjI hhubj| )}(h- ``OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED``
- ``OPEN_FAILED_CONNECT_FAILED``
- ``OPEN_FAILED_UNKNOWN_CHANNEL_TYPE``
- ``OPEN_FAILED_RESOURCE_SHORTAGE``
h]j )}(hhh](j )}(h+``OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED``h]h@)}(hj¬ h]hL)}(hj¬ h]h'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
}(hj± hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj® ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjª ubah}(h ]h"]h$]h&]h(]uh*j hj§ ubj )}(h``OPEN_FAILED_CONNECT_FAILED``h]h@)}(hjÌ h]hL)}(hjÌ h]hOPEN_FAILED_CONNECT_FAILED
}(hjÑ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÎ ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjÊ ubah}(h ]h"]h$]h&]h(]uh*j hj§ ubj )}(h$``OPEN_FAILED_UNKNOWN_CHANNEL_TYPE``h]h@)}(hjì h]hL)}(hjì h]h OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
}(hjñ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjî ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhjê ubah}(h ]h"]h$]h&]h(]uh*j hj§ ubj )}(h"``OPEN_FAILED_RESOURCE_SHORTAGE``
h]h@)}(h!``OPEN_FAILED_RESOURCE_SHORTAGE``h]hL)}(hj h]hOPEN_FAILED_RESOURCE_SHORTAGE
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]uh*h?hjl hKhj
ubah}(h ]h"]h$]h&]h(]uh*j hj§ ubeh}(h ]h"]h$]h&]h(]j¯ j° uh*j hjl hKhj£ ubah}(h ]h"]h$]h&]h(]uh*j{ hjl hKhjI hhubh@)}(hVThe default implementation always returns
``OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED``.h](h*The default implementation always returns
}(hj7 hhhNhNubhL)}(h+``OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED``h]h'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
}(hj? hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj7 ubh.
}(hj7 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjl hK!hjI hhubh
field_list)}(hhh](h field)}(hhh](h
field_name)}(h
Parametersh]h
Parameters
}(hjc hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj^ hj hK ubh
field_body)}(hhh]j )}(hhh](j )}(hhh]h@)}(hTkind (str) -- the kind of channel the client would like to open (usually
"session").h](h,literal_strong)}(hkindh]hkind
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj| ubh (
}(hj| hhhNhNubhF)}(hhh]h,literal_emphasis)}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypeobj reftargetj hjuh*hEhj| ubh)
}(hj| hhhNhNubh –
}(hj| hhhNhNubh;the kind of channel the client would like to open (usually
}(hj| hhhNhNubhL)}(h
``"session"``h]h "session"
}(hj¿ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj| hhhNhNubh).
}(hj| hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjy ubah}(h ]h"]h$]h&]h(]uh*j hjv ubj )}(hhh]h@)}(h!chanid (int) -- ID of the channelh](j )}(hchanidh]hchanid
}(hjä hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjà ubh (
}(hjà hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjù hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjö ubah}(h ]h"]h$]h&]h(] refdomainj® refexplicitreftypej± reftargetjû hjuh*hEhjà ubh)
}(hjà hhhNhNubh –
}(hjà hhhNhNubhID of the channel
}(hjà hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÝ ubah}(h ]h"]h$]h&]h(]uh*j hjv ubeh}(h ]h"]h$]h&]h(]uh*j hjs ubah}(h ]h"]h$]h&]h(]uh*jq hj^ ubeh}(h ]h"]h$]h&]h(]uh*j\ hjY ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj> hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj; hj hK ubjr )}(hhh]h@)}(h-an int success or failure code (listed above)h](han
}(hjO hhhNhNubhF)}(h`int`h]hL)}(hjY h]hint
}(hj[ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjW ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainje refexplicithgjG hihhkinthmhnhouh*hEhNhNhjO hhubh' success or failure code (listed above)
}(hjO hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjL ubah}(h ]h"]h$]h&]h(]uh*jq hj; ubeh}(h ]h"]h$]h&]h(]uh*j\ hjY ubeh}(h ]h"]h$]h&]h(]uh*jW hjI hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj hhhj hNubeh}(h ]h"]h$]h&]h(]domainj® objtypemethoddesctypej noindexuh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:<get_allowed_auths() (paramiko.server.ServerInterface method)1paramiko.server.ServerInterface.get_allowed_authshNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h+ServerInterface.get_allowed_auths(username)h](h¸)}(hget_allowed_authsh]hget_allowed_auths
}(hj· hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj³ hhhr/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.get_allowed_authshNubj )}(husernameh]j )}(husernameh]husername
}(hjÊ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjÆ ubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj³ hhhjÅ hNubeh}(h ]j® ah"]h$]j® ah&]h(]h̉h͌paramiko.serverhÏhhЌ!ServerInterface.get_allowed_authsuh*hhj° hhhjÅ hNubhÒ)}(hhh](h@)}(h¼Return a list of authentication methods supported by the server.
This list is sent to clients attempting to authenticate, to inform them
of authentication methods that might be successful.h]h¼Return a list of authentication methods supported by the server.
This list is sent to clients attempting to authenticate, to inform them
of authentication methods that might be successful.
}(hjé hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hr/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.get_allowed_authshKhjæ hhubh@)}(hThe "list" is actually a string of comma-separated names of types of
authentication. Possible values are ``"password"``, ``"publickey"``,
and ``"none"``.h](hnThe “list” is actually a string of comma-separated names of types of
authentication. Possible values are
}(hjø hhhNhNubhL)}(h``"password"``h]h
"password"
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjø ubh,
}(hjø hhhNhNubhL)}(h``"publickey"``h]h"publickey"
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjø ubh,
and
}(hjø hhhNhNubhL)}(h
``"none"``h]h"none"
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjø ubh.
}(hjø hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj÷ hKhjæ hhubh@)}(h9The default implementation always returns ``"password"``.h](h*The default implementation always returns
}(hj< hhhNhNubhL)}(h``"password"``h]h
"password"
}(hjD hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj< ubh.
}(hj< hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj÷ hK hjæ hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj_ hjÅ hK ubjr )}(hhh]h@)}(h9username (str) -- the username requesting authentication.h](j )}(husernameh]husername
}(hjw hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjs ubh (
}(hjs hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetj hjuh*hEhjs ubh)
}(hjs hhhNhNubh –
}(hjs hhhNhNubh'the username requesting authentication.
}(hjs hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjp ubah}(h ]h"]h$]h&]h(]uh*jq hj_ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj\ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hjÆ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjà hjÅ hK ubjr )}(hhh]h@)}(h-a comma-separated str of authentication typesh](ha comma-separated
}(hj× hhhNhNubhF)}(h`str`h]hL)}(hjá h]hstr
}(hjã hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjß ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjí refexplicithgjä hihhkstrhmhnhouh*hEhNhNhj× hhubh of authentication types
}(hj× hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÔ ubah}(h ]h"]h$]h&]h(]uh*jq hjà ubeh}(h ]h"]h$]h&]h(]uh*j\ hj\ ubeh}(h ]h"]h$]h&]h(]uh*jW hjæ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj° hhhjÅ hNubeh}(h ]h"]h$]h&]h(]j j¡ j methodj j% j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h::check_auth_none() (paramiko.server.ServerInterface method)/paramiko.server.ServerInterface.check_auth_nonehNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h)ServerInterface.check_auth_none(username)h](h¸)}(hcheck_auth_noneh]hcheck_auth_none
}(hj; hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj7 hhhp/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_nonehNubj )}(husernameh]j )}(husernameh]husername
}(hjN hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjJ ubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj7 hhhjI hNubeh}(h ]j2 ah"]h$]j2 ah&]h(]h̉h͌paramiko.serverhÏhhЌServerInterface.check_auth_noneuh*hhj4 hhhjI hNubhÒ)}(hhh](h@)}(hIDetermine if a client may open channels with no (further)
authentication.h]hIDetermine if a client may open channels with no (further)
authentication.
}(hjm hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hp/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_nonehKhjj hhubh@)}(hReturn ``AUTH_FAILED`` if the client must authenticate, or
``AUTH_SUCCESSFUL`` if it's okay for the client to not
authenticate.h](hReturn
}(hj| hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj| ubh% if the client must authenticate, or
}(hj| hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj| ubh3 if it’s okay for the client to not
authenticate.
}(hj| hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj{ hKhjj hhubh@)}(h:The default implementation always returns ``AUTH_FAILED``.h](h*The default implementation always returns
}(hj® hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj¶ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj® ubh.
}(hj® hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj{ hKhjj hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjÔ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjÑ hjI hK ubjr )}(hhh]h@)}(h-username (str) -- the username of the client.h](j )}(husernameh]husername
}(hjé hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjå ubh (
}(hjå hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjþ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjû ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetj hjuh*hEhjå ubh)
}(hjå hhhNhNubh –
}(hjå hhhNhNubhthe username of the client.
}(hjå hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjâ ubah}(h ]h"]h$]h&]h(]uh*jq hjÑ ubeh}(h ]h"]h$]h&]h(]uh*j\ hjÎ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj8 hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj5 hjI hK ubjr )}(hhh]h@)}(hHAUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if
it succeeds.h](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjM hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjI hhhNhNubh if the authentication fails;
}(hjI hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj_ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjI hhhNhNubh if
it succeeds.
}(hjI hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjF ubah}(h ]h"]h$]h&]h(]uh*jq hj5 ubeh}(h ]h"]h$]h&]h(]uh*j\ hjÎ ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjI hK ubjr )}(hhh]h@)}(hinth]hF)}(hhh]hint
}(hj hhhNhNubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetinthjuh*hEhj ubah}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hjÎ ubeh}(h ]h"]h$]h&]h(]uh*jW hjj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj4 hhhjI hNubeh}(h ]h"]h$]h&]h(]j j j methodj jÑ j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:>check_auth_password() (paramiko.server.ServerInterface method)3paramiko.server.ServerInterface.check_auth_passwordhNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h7ServerInterface.check_auth_password(username, password)h](h¸)}(hcheck_auth_passwordh]hcheck_auth_password
}(hjç hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hjã hhht/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_passwordhNubj )}(husername, passwordh](j )}(husernameh]husername
}(hjú hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjö ubj )}(hpasswordh]hpassword
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjö ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hjã hhhjõ hNubeh}(h ]jÞ ah"]h$]jÞ ah&]h(]h̉h͌paramiko.serverhÏhhЌ#ServerInterface.check_auth_passworduh*hhjà hhhjõ hNubhÒ)}(hhh](h@)}(hjDetermine if a given username and password supplied by the client is
acceptable for use in authentication.h]hjDetermine if a given username and password supplied by the client is
acceptable for use in authentication.
}(hj' hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?ht/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_passwordhKhj$ hhubh@)}(hXª Return ``AUTH_FAILED`` if the password is not accepted,
``AUTH_SUCCESSFUL`` if the password is accepted and completes
the authentication, or ``AUTH_PARTIALLY_SUCCESSFUL`` if your
authentication is stateful, and this key is accepted for
authentication, but more authentication is required. (In this latter
case, `get_allowed_auths` will be called to report to the client what
options it has for continuing the authentication.)h](hReturn
}(hj6 hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj> hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj6 ubh" if the password is not accepted,
}(hj6 hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hjP hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj6 ubhB if the password is accepted and completes
the authentication, or
}(hj6 hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj6 ubh if your
authentication is stateful, and this key is accepted for
authentication, but more authentication is required. (In this latter
case,
}(hj6 hhhNhNubhF)}(h`get_allowed_auths`h]hL)}(hjv h]hget_allowed_auths
}(hjx hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjt ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgj" hihhkget_allowed_authshmhnhouh*hEhNhNhj6 ubh_ will be called to report to the client what
options it has for continuing the authentication.)
}(hj6 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj5 hKhj$ hhubh@)}(h:The default implementation always returns ``AUTH_FAILED``.h](h*The default implementation always returns
}(hj hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj¤ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj5 hKhj$ hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj¿ hjõ hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h<username (str) -- the username of the authenticating client.h](j )}(husernameh]husername
}(hjÝ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjÙ ubh (
}(hjÙ hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjò hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjï ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetjô hjuh*hEhjÙ ubh)
}(hjÙ hhhNhNubh –
}(hjÙ hhhNhNubh*the username of the authenticating client.
}(hjÙ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÖ ubah}(h ]h"]h$]h&]h(]uh*j hjÓ ubj )}(hhh]h@)}(h3password (str) -- the password given by the client.h](j )}(hpasswordh]hpassword
}(hj*
hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj&
ubh (
}(hj&
hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj?
hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj<
ubah}(h ]h"]h$]h&]h(] refdomainj
refexplicitreftypej± reftargetjA
hjuh*hEhj&
ubh)
}(hj&
hhhNhNubh –
}(hj&
hhhNhNubh!the password given by the client.
}(hj&
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj#
ubah}(h ]h"]h$]h&]h(]uh*j hjÓ ubeh}(h ]h"]h$]h&]h(]uh*j hjÐ ubah}(h ]h"]h$]h&]h(]uh*jq hj¿ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¼ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj
hjõ hK ubjr )}(hhh]h@)}(h¨AUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if
it succeeds; AUTH_PARTIALLY_SUCCESSFUL if the password auth is
successful, but authentication must continue.h](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubh if the authentication fails;
}(hj
hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj«
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubh if
it succeeds;
}(hj
hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hj½
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubhF if the password auth is
successful, but authentication must continue.
}(hj
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj
ubah}(h ]h"]h$]h&]h(]uh*jq hj
ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¼ ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hjä
hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjá
hjõ hK ubjr )}(hhh]h@)}(hinth]hF)}(hhh]hint
}(hjù
hhhNhNubah}(h ]h"]h$]h&]h(] refdomainj
refexplicitreftypej± reftargetinthjuh*hEhjõ
ubah}(h ]h"]h$]h&]h(]uh*h?hjò
ubah}(h ]h"]h$]h&]h(]uh*jq hjá
ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¼ ubeh}(h ]h"]h$]h&]h(]uh*jW hj$ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhjà hhhjõ hNubeh}(h ]h"]h$]h&]h(]j j
j methodj j/ j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:?check_auth_publickey() (paramiko.server.ServerInterface method)4paramiko.server.ServerInterface.check_auth_publickeyhNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h3ServerInterface.check_auth_publickey(username, key)h](h¸)}(hcheck_auth_publickeyh]hcheck_auth_publickey
}(hjE hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hjA hhhu/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_publickeyhNubj )}(h
username, keyh](j )}(husernameh]husername
}(hjX hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjT ubj )}(hkeyh]hkey
}(hjf hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjT ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hjA hhhjS hNubeh}(h ]j< ah"]h$]j< ah&]h(]h̉h͌paramiko.serverhÏhhЌ$ServerInterface.check_auth_publickeyuh*hhj> hhhjS hNubhÒ)}(hhh](h@)}(hæDetermine if a given key supplied by the client is acceptable for use
in authentication. You should override this method in server mode to
check the username and key and decide if you would accept a signature
made using this key.h]hæDetermine if a given key supplied by the client is acceptable for use
in authentication. You should override this method in server mode to
check the username and key and decide if you would accept a signature
made using this key.
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hu/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_publickeyhKhj hhubh@)}(hX¥ Return ``AUTH_FAILED`` if the key is not accepted,
``AUTH_SUCCESSFUL`` if the key is accepted and completes the
authentication, or ``AUTH_PARTIALLY_SUCCESSFUL`` if your
authentication is stateful, and this password is accepted for
authentication, but more authentication is required. (In this latter
case, `get_allowed_auths` will be called to report to the client what
options it has for continuing the authentication.)h](hReturn
}(hj hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh if the key is not accepted,
}(hj hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj® hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh= if the key is accepted and completes the
authentication, or
}(hj hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hjÀ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh if your
authentication is stateful, and this password is accepted for
authentication, but more authentication is required. (In this latter
case,
}(hj hhhNhNubhF)}(h`get_allowed_auths`h]hL)}(hjÔ h]hget_allowed_auths
}(hjÖ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjÒ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjà refexplicithgj hihhkget_allowed_authshmhnhouh*hEhNhNhj ubh_ will be called to report to the client what
options it has for continuing the authentication.)
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj hhubh@)}(h¨Note that you don't have to actually verify any key signtature here.
If you're willing to accept the key, Paramiko will do the work of
verifying the client's signature.h]h®Note that you don’t have to actually verify any key signtature here.
If you’re willing to accept the key, Paramiko will do the work of
verifying the client’s signature.
}(hjú hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj hhubh@)}(h:The default implementation always returns ``AUTH_FAILED``.h](h*The default implementation always returns
}(hj hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj. hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj+ hjS hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h;username (str) -- the username of the authenticating clienth](j )}(husernameh]husername
}(hjI hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjE ubh (
}(hjE hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj^ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj[ ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetj` hjuh*hEhjE ubh)
}(hjE hhhNhNubh –
}(hjE hhhNhNubh)the username of the authenticating client
}(hjE hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjB ubah}(h ]h"]h$]h&]h(]uh*j hj? ubj )}(hhh]h@)}(h3key (PKey) -- the key object provided by the clienth](j )}(hkeyh]hkey
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj ubh (
}(hj hhhNhNubhF)}(hhh]j )}(h.PKeyh]hPKey
}(hj« hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj¨ ubah}(h ]h"]h$]h&]h(] refdomainjs refexplicitreftypej± reftargetPKeyhjuh*hEhj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubh%the key object provided by the client
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j hj? ubeh}(h ]h"]h$]h&]h(]uh*j hj< ubah}(h ]h"]h$]h&]h(]uh*jq hj+ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj( ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hjñ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjî hjS hK ubjr )}(hhh]h@)}(h»AUTH_FAILED if the client can't authenticate with this key;
AUTH_SUCCESSFUL if it can; AUTH_PARTIALLY_SUCCESSFUL if it
can authenticate with this key but must continue with
authenticationh](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubh3 if the client can’t authenticate with this key;
}(hj
hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubh if it can;
}(hj
hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hj*
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj
hhhNhNubhK if it
can authenticate with this key but must continue with
authentication
}(hj
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÿ ubah}(h ]h"]h$]h&]h(]uh*jq hjî ubeh}(h ]h"]h$]h&]h(]uh*j\ hj( ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hjQ
hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjN
hjS hK ubjr )}(hhh]h@)}(hinth]hF)}(hhh]hint
}(hjf
hhhNhNubah}(h ]h"]h$]h&]h(] refdomainjs refexplicitreftypej± reftargetinthjuh*hEhjb
ubah}(h ]h"]h$]h&]h(]uh*h?hj_
ubah}(h ]h"]h$]h&]h(]uh*jq hjN
ubeh}(h ]h"]h$]h&]h(]uh*j\ hj( ubeh}(h ]h"]h$]h&]h(]uh*jW hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj> hhhjS hNubeh}(h ]h"]h$]h&]h(]j js j methodj j
j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Acheck_auth_interactive() (paramiko.server.ServerInterface method)6paramiko.server.ServerInterface.check_auth_interactivehNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h<ServerInterface.check_auth_interactive(username, submethods)h](h¸)}(hcheck_auth_interactiveh]hcheck_auth_interactive
}(hj²
hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj®
hhhw/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_interactivehNubj )}(husername, submethodsh](j )}(husernameh]husername
}(hjÅ
hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjÁ
ubj )}(h
submethodsh]h
submethods
}(hjÓ
hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjÁ
ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj®
hhhjÀ
hNubeh}(h ]j©
ah"]h$]j©
ah&]h(]h̉h͌paramiko.serverhÏhhЌ&ServerInterface.check_auth_interactiveuh*hhj«
hhhjÀ
hNubhÒ)}(hhh](h@)}(høBegin an interactive authentication challenge, if supported. You
should override this method in server mode if you want to support the
``"keyboard-interactive"`` auth type, which requires you to send a
series of questions for the client to answer.h](hBegin an interactive authentication challenge, if supported. You
should override this method in server mode if you want to support the
}(hjò
hhhNhNubhL)}(h``"keyboard-interactive"``h]h"keyboard-interactive"
}(hjú
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjò
ubhV auth type, which requires you to send a
series of questions for the client to answer.
}(hjò
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hw/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_interactivehKhjï
hhubh@)}(hùReturn ``AUTH_FAILED`` if this auth method isn't supported. Otherwise,
you should return an `.InteractiveQuery` object containing the prompts
and instructions for the user. The response will be sent via a call
to `check_auth_interactive_response`.h](hReturn
}(hj hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubhI if this auth method isn’t supported. Otherwise,
you should return an
}(hj hhhNhNubhF)}(h`.InteractiveQuery`h]hL)}(hj/ h]hInteractiveQuery
}(hj1 hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj- ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj; refexplicithgjí
hihhjhkInteractiveQueryhmhnhouh*hEhNhNhj ubhg object containing the prompts
and instructions for the user. The response will be sent via a call
to
}(hj hhhNhNubhF)}(h!`check_auth_interactive_response`h]hL)}(hjQ h]hcheck_auth_interactive_response
}(hjS hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjO ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj] refexplicithgjí
hihhkcheck_auth_interactive_responsehmhnhouh*hEhNhNhj ubh.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjï
hhubh@)}(h:The default implementation always returns ``AUTH_FAILED``.h](h*The default implementation always returns
}(hjw hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjw ubh.
}(hjw hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjï
hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjÀ
hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h;username (str) -- the username of the authenticating clienth](j )}(husernameh]husername
}(hj¸ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj´ ubh (
}(hj´ hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjÊ ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetjÏ hjuh*hEhj´ ubh)
}(hj´ hhhNhNubh –
}(hj´ hhhNhNubh)the username of the authenticating client
}(hj´ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj± ubah}(h ]h"]h$]h&]h(]uh*j hj® ubj )}(hhh]h@)}(h]submethods (str) -- a comma-separated list of methods preferred by the client (usually
empty)h](j )}(h
submethodsh]h
submethods
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj ubh (
}(hj hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainjâ refexplicitreftypej± reftargetj hjuh*hEhj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubhIa comma-separated list of methods preferred by the client (usually
empty)
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjþ ubah}(h ]h"]h$]h&]h(]uh*j hj® ubeh}(h ]h"]h$]h&]h(]uh*j hj« ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj_ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj\ hjÀ
hK ubjr )}(hhh]h@)}(hdAUTH_FAILED if this auth method isn't supported; otherwise an
object containing queries for the userh](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjt hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjp hhhNhNubh[ if this auth method isn’t supported; otherwise an
object containing queries for the user
}(hjp hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjm ubah}(h ]h"]h$]h&]h(]uh*jq hj\ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjÀ
hK ubjr )}(hhh]h@)}(hint or InteractiveQueryh](hint or
}(hj¬ hhhNhNubhF)}(h`.InteractiveQuery`h]hL)}(hj¶ h]hInteractiveQuery
}(hj¸ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj´ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgjí
hihhjhkInteractiveQueryhmhnhouh*hEhNhNhj¬ hhubeh}(h ]h"]h$]h&]h(]uh*h?hj© ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubeh}(h ]h"]h$]h&]h(]uh*jW hjï
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj«
hhhjÀ
hNubeh}(h ]h"]h$]h&]h(]j jâ j methodj jö j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Jcheck_auth_interactive_response() (paramiko.server.ServerInterface method)?paramiko.server.ServerInterface.check_auth_interactive_responsehNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h:ServerInterface.check_auth_interactive_response(responses)h](h¸)}(hcheck_auth_interactive_responseh]hcheck_auth_interactive_response
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj hhh/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_interactive_responsehNubj )}(h responsesh]j )}(h responsesh]h responses
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj hhhj hNubeh}(h ]j ah"]h$]j ah&]h(]h̉h͌paramiko.serverhÏhhЌ/ServerInterface.check_auth_interactive_responseuh*hhj hhhj hNubhÒ)}(hhh](h@)}(hºContinue or finish an interactive authentication challenge, if
supported. You should override this method in server mode if you want
to support the ``"keyboard-interactive"`` auth type.h](hContinue or finish an interactive authentication challenge, if
supported. You should override this method in server mode if you want
to support the
}(hj> hhhNhNubhL)}(h``"keyboard-interactive"``h]h"keyboard-interactive"
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj> ubh auth type.
}(hj> hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?h/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_interactive_responsehKhj; hhubh@)}(hXº Return ``AUTH_FAILED`` if the responses are not accepted,
``AUTH_SUCCESSFUL`` if the responses are accepted and complete
the authentication, or ``AUTH_PARTIALLY_SUCCESSFUL`` if your
authentication is stateful, and this set of responses is accepted for
authentication, but more authentication is required. (In this latter
case, `get_allowed_auths` will be called to report to the client what
options it has for continuing the authentication.)h](hReturn
}(hj_ hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjg hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj_ ubh$ if the responses are not accepted,
}(hj_ hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hjy hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj_ ubhC if the responses are accepted and complete
the authentication, or
}(hj_ hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj_ ubh if your
authentication is stateful, and this set of responses is accepted for
authentication, but more authentication is required. (In this latter
case,
}(hj_ hhhNhNubhF)}(h`get_allowed_auths`h]hL)}(hj h]hget_allowed_auths
}(hj¡ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj« refexplicithgj9 hihhkget_allowed_authshmhnhouh*hEhNhNhj_ ubh_ will be called to report to the client what
options it has for continuing the authentication.)
}(hj_ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj^ hKhj; hhubh@)}(hóIf you wish to continue interactive authentication with more questions,
you may return an `.InteractiveQuery` object, which should cause the
client to respond with more answers, calling this method again. This
cycle can continue indefinitely.h](hZIf you wish to continue interactive authentication with more questions,
you may return an
}(hjÅ hhhNhNubhF)}(h`.InteractiveQuery`h]hL)}(hjÏ h]hInteractiveQuery
}(hjÑ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjÍ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjÛ refexplicithgj9 hihhjhkInteractiveQueryhmhnhouh*hEhNhNhjÅ ubh object, which should cause the
client to respond with more answers, calling this method again. This
cycle can continue indefinitely.
}(hjÅ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj^ hK
hj; hhubh@)}(h:The default implementation always returns ``AUTH_FAILED``.h](h*The default implementation always returns
}(hjõ hhhNhNubhL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjý hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjõ ubh.
}(hjõ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj^ hKhj; hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hj hK ubjr )}(hhh]h@)}(h2responses -- list of str responses from the clienth](j )}(h responsesh]h responses
}(hj0 hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj, ubh –
}(hj, hhhNhNubhlist of
}(hj, hhhNhNubhF)}(h`str`h]hL)}(hjH h]hstr
}(hjJ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjF ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjT refexplicithgj9 hihhkstrhmhnhouh*hEhNhNhj, hhubh responses from the client
}(hj, hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj) ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj} hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjz hj hK ubjr )}(hhh]h@)}(hßAUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if
it succeeds; AUTH_PARTIALLY_SUCCESSFUL if the interactive auth
is successful, but authentication must continue; otherwise an
object containing queries for the userh](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj hhhNhNubh if the authentication fails;
}(hj hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hj¤ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj hhhNhNubh if
it succeeds;
}(hj hhhNhNubhL)}(h``AUTH_PARTIALLY_SUCCESSFUL``h]hAUTH_PARTIALLY_SUCCESSFUL
}(hj¶ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj hhhNhNubh} if the interactive auth
is successful, but authentication must continue; otherwise an
object containing queries for the user
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hjz ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hjÝ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjÚ hj hK ubjr )}(hhh]h@)}(hint or InteractiveQueryh](hint or
}(hjî hhhNhNubhF)}(h`.InteractiveQuery`h]hL)}(hjø h]hInteractiveQuery
}(hjú hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjö ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgj9 hihhjhkInteractiveQueryhmhnhouh*hEhNhNhjî hhubeh}(h ]h"]h$]h&]h(]uh*h?hjë ubah}(h ]h"]h$]h&]h(]uh*jq hjÚ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj ubeh}(h ]h"]h$]h&]h(]uh*jW hj; hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj hhhj hNubeh}(h ]h"]h$]h&]h(]j pyj methodj j9 j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Echeck_auth_gssapi_with_mic() (paramiko.server.ServerInterface method):paramiko.server.ServerInterface.check_auth_gssapi_with_michNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(hWServerInterface.check_auth_gssapi_with_mic(username, gss_authenticated=2, cc_file=None)h](h¸)}(hcheck_auth_gssapi_with_mich]hcheck_auth_gssapi_with_mic
}(hjO hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hjK hhh{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_gssapi_with_michNubj )}(h+username, gss_authenticated=2, cc_file=Noneh](j )}(husernameh]husername
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj^ ubj )}(hgss_authenticated=2h]hgss_authenticated=2
}(hjp hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj^ ubj )}(hcc_file=Noneh]hcc_file=None
}(hj~ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj^ ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hjK hhhj] hNubeh}(h ]jF ah"]h$]jF ah&]h(]h̉h͌paramiko.serverhÏhhЌ*ServerInterface.check_auth_gssapi_with_micuh*hhjH hhhj] hNubhÒ)}(hhh](h@)}(hJAuthenticate the given user to the server if he is a valid krb5
principal.h]hJAuthenticate the given user to the server if he is a valid krb5
principal.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_gssapi_with_michKhj hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj² hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj¯ hj] hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h;username (str) -- The username of the authenticating clienth](j )}(husernameh]husername
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjÉ ubh (
}(hjÉ hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjâ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjß ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetjä hjuh*hEhjÉ ubh)
}(hjÉ hhhNhNubh –
}(hjÉ hhhNhNubh)The username of the authenticating client
}(hjÉ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÆ ubah}(h ]h"]h$]h&]h(]uh*j hjà ubj )}(hhh]h@)}(h@gss_authenticated (int) -- The result of the krb5 authenticationh](j )}(hgss_authenticatedh]hgss_authenticated
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj ubh (
}(hj hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hj/ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj, ubah}(h ]h"]h$]h&]h(] refdomainj÷ refexplicitreftypej± reftargetj1 hjuh*hEhj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubh%The result of the krb5 authentication
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j hjà ubj )}(hhh]h@)}(h?cc_filename (str) -- The krb5 client credentials cache filenameh](j )}(hcc_filenameh]hcc_filename
}(hjf hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjb ubh (
}(hjb hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj{ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjx ubah}(h ]h"]h$]h&]h(] refdomainj÷ refexplicitreftypej± reftargetj} hjuh*hEhjb ubh)
}(hjb hhhNhNubh –
}(hjb hhhNhNubh*The krb5 client credentials cache filename
}(hjb hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj_ ubah}(h ]h"]h$]h&]h(]uh*j hjà ubeh}(h ]h"]h$]h&]h(]uh*j hjÀ ubah}(h ]h"]h$]h&]h(]uh*jq hj¯ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¬ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hjÀ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj½ hj] hK ubjr )}(hhh]h@)}(hFAUTH_FAILED if the user is not authenticated otherwise
AUTH_SUCCESSFULh](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjÕ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÑ hhhNhNubh, if the user is not authenticated otherwise
}(hjÑ hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hjç hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÑ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÎ ubah}(h ]h"]h$]h&]h(]uh*jq hj½ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¬ ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hj] hK ubjr )}(hhh]h@)}(hinth]hF)}(hhh]hint
}(hj hhhNhNubah}(h ]h"]h$]h&]h(] refdomainj÷ refexplicitreftypej± reftargetinthjuh*hEhj ubah}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¬ ubj] )}(hhh](jb )}(hnoteh]hNote
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjC hj« hK ubjr )}(h0Kerberos credential delegation is not supported.h]h@)}(hjV h]h0Kerberos credential delegation is not supported.
}(hjX hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj« hK
hjT ubah}(h ]h"]h$]h&]h(]uh*jq hjC ubeh}(h ]h"]h$]h&]h(]uh*j\ hj« hK
hj¬ hhubj] )}(hhh](jb )}(hseeh]hSee
}(hjt hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjq hj« hK ubjr )}(h
`.ssh_gss`h]h@)}(hj h]hF)}(hj h]hL)}(hj h]hssh_gss
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgj hihhjhkssh_gsshmhnhouh*hEhNhNhj ubah}(h ]h"]h$]h&]h(]uh*h?hj« hKhj ubah}(h ]h"]h$]h&]h(]uh*jq hjq ubeh}(h ]h"]h$]h&]h(]uh*j\ hj« hKhj¬ hhubj] )}(hhh](jb )}(hnoteh]hNote
}(hj» hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj¸ hj« hK ubjr )}(hXÌ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don't check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed to
log in as a user.h]h@)}(hXÌ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don't check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed to
log in as a user.h]hXÎ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don’t check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed to
log in as a user.
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj« hKhjÉ ubah}(h ]h"]h$]h&]h(]uh*jq hj¸ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj« hKhj¬ hhubj] )}(hhh](jb )}(hseeh]hSee
}(hjê hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjç hj« hK ubjr )}(h0http://www.unix.com/man-page/all/3/krb5_kuserok/h]h@)}(hjú h]h reference)}(hjú h]h0http://www.unix.com/man-page/all/3/krb5_kuserok/
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]refurijú uh*jÿ hjü ubah}(h ]h"]h$]h&]h(]uh*h?hj« hKhjø ubah}(h ]h"]h$]h&]h(]uh*jq hjç ubeh}(h ]h"]h$]h&]h(]uh*j\ hj« hKhj¬ hhubeh}(h ]h"]h$]h&]h(]uh*jW hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhjH hhhj] hNubeh}(h ]h"]h$]h&]h(]j j÷ j methodj j3 j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Bcheck_auth_gssapi_keyex() (paramiko.server.ServerInterface method)7paramiko.server.ServerInterface.check_auth_gssapi_keyexhNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(hTServerInterface.check_auth_gssapi_keyex(username, gss_authenticated=2, cc_file=None)h](h¸)}(hcheck_auth_gssapi_keyexh]hcheck_auth_gssapi_keyex
}(hjI hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hjE hhhx/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_gssapi_keyexhNubj )}(h+username, gss_authenticated=2, cc_file=Noneh](j )}(husernameh]husername
}(hj\ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjX ubj )}(hgss_authenticated=2h]hgss_authenticated=2
}(hjj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjX ubj )}(hcc_file=Noneh]hcc_file=None
}(hjx hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjX ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hjE hhhjW hNubeh}(h ]j@ ah"]h$]j@ ah&]h(]h̉h͌paramiko.serverhÏhhЌ'ServerInterface.check_auth_gssapi_keyexuh*hhjB hhhjW hNubhÒ)}(hhh](h@)}(hËAuthenticate the given user to the server if he is a valid krb5
principal and GSS-API Key Exchange was performed.
If GSS-API Key Exchange was not performed, this authentication method
won't be available.h]hÍAuthenticate the given user to the server if he is a valid krb5
principal and GSS-API Key Exchange was performed.
If GSS-API Key Exchange was not performed, this authentication method
won’t be available.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hx/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_auth_gssapi_keyexhKhj hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj¬ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj© hjW hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h;username (str) -- The username of the authenticating clienth](j )}(husernameh]husername
}(hjÇ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjà ubh (
}(hjà hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjÜ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjÙ ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetjÞ hjuh*hEhjà ubh)
}(hjà hhhN hNubh –
}(hjà hhhNhNubh)The username of the authenticating client
}(hjà hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÀ ubah}(h ]h"]h$]h&]h(]uh*j hj½ ubj )}(hhh]h@)}(h@gss_authenticated (int) -- The result of the krb5 authenticationh](j )}(hgss_authenticatedh]hgss_authenticated
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj ubh (
}(hj hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hj) hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj& ubah}(h ]h"]h$]h&]h(] refdomainjñ refexplicitreftypej± reftargetj+ hjuh*hEhj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubh%The result of the krb5 authentication
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj
ubah}(h ]h"]h$]h&]h(]uh*j hj½ ubj )}(hhh]h@)}(h?cc_filename (str) -- The krb5 client credentials cache filenameh](j )}(hcc_filenameh]hcc_filename
}(hj` hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj\ ubh (
}(hj\ hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hju hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjr ubah}(h ]h"]h$]h&]h(] refdomainjñ refexplicitreftypej± reftargetjw hjuh*hEhj\ ubh)
}(hj\ hhhNhNubh –
}(hj\ hhhNhNubh*The krb5 client credentials cache filename
}(hj\ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjY ubah}(h ]h"]h$]h&]h(]uh*j hj½ ubeh}(h ]h"]h$]h&]h(]uh*j hjº ubah}(h ]h"]h$]h&]h(]uh*jq hj© ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¦ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hjº hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj· hjW hK ubjr )}(hhh]h@)}(hFAUTH_FAILED if the user is not authenticated otherwise
AUTH_SUCCESSFULh](hL)}(h``AUTH_FAILED``h]hAUTH_FAILED
}(hjÏ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjË hhhNhNubh, if the user is not authenticated otherwise
}(hjË hhhNhNubhL)}(h``AUTH_SUCCESSFUL``h]hAUTH_SUCCESSFUL
}(hjá hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjË hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÈ ubah}(h ]h"]h$]h&]h(]uh*jq hj· ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¦ ubj] )}(hhh](jb )}(hReturn typeh]hReturn type
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjW hK ubjr )}(hhh]h@)}(hinth]hF)}(hhh]hint
}(hj hhhNhNubah}(h ]h"]h$]h&]h(] refdomainjñ refexplicitreftypej± reftargetinthjuh*hEhj ubah}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¦ ubj] )}(hhh](jb )}(hnoteh]hNote
}(hj@ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj= hj¥ hK ubjr )}(h0Kerberos credential delegation is not supported.h]h@)}(hjP h]h0Kerberos credential delegation is not supported.
}(hjR hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhjN ubah}(h ]h"]h$]h&]h(]uh*jq hj= ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¥ hKhj¦ hhubj] )}(hhh](jb )}(hseeh]hSee
}(hjn hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjk hj¥ hK ubjr )}(h`.ssh_gss` `.kex_gss`h]h@)}(hj~ h](hF)}(h
`.ssh_gss`h]hL)}(hj
h]hssh_gss
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgj hihhjhkssh_gsshmhnhouh*hEhNhNhj ubh
}(hj hhhNhNubhF)}(h
`.kex_gss`h]hL)}(hj§ h]hkex_gss
}(hj© hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj¥ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj³ refexplicithgj hihhjhkkex_gsshmhnhouh*hEhNhNhj ubeh}(h ]h"]h$]h&]h(]uh*h?hj¥ hK
hj| ubah}(h ]h"]h$]h&]h(]uh*jq hjk ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¥ hK
hj¦ hhubj] )}(hhh](jb )}(hnoteh]hNote
}(hjØ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjÕ hj¥ hK ubjr )}(hXÌ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don't check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed
to log in as a user.h]h@)}(hXÌ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don't check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed
to log in as a user.h]hXÎ : We are just checking in L{AuthHandler} that the given user is
a valid krb5 principal!
We don’t check if the krb5 principal is allowed to log in on
the server, because there is no way to do that in python. So
if you develop your own SSH server with paramiko for a cetain
plattform like Linux, you should call C{krb5_kuserok()} in
your local kerberos library to make sure that the
krb5_principal has an account on the server and is allowed
to log in as a user.
}(hjê hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhjæ ubah}(h ]h"]h$]h&]h(]uh*jq hjÕ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¥ hKhj¦ hhubj] )}(hhh](jb )}(hseeh]hSee
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hj¥ hK ubjr )}(h0http://www.unix.com/man-page/all/3/krb5_kuserok/h]h@)}(hj h]j )}(hj h]h0http://www.unix.com/man-page/all/3/krb5_kuserok/
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]refurij uh*jÿ hj ubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj¥ hKhj¦ hhubeh}(h ]h"]h$]h&]h(]uh*jW hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhjB hhhjW hNubeh}(h ]h"]h$]h&]h(]j jñ j methodj jN j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:=enable_auth_gssapi() (paramiko.server.ServerInterface method)2paramiko.server.ServerInterface.enable_auth_gssapihNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h$ServerInterface.enable_auth_gssapi()h](h¸)}(henable_auth_gssapih]henable_auth_gssapi
}(hjd hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj` hhhs/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.enable_auth_gssapihNubj )}(hhh]h}(h ]h"]h$]h&]h(]h¤h¥uh*j hj` hhhjr hNubeh}(h ]j[ ah"]h$]j[ ah&]h(]h̉h͌paramiko.serverhÏhhЌ"ServerInterface.enable_auth_gssapiuh*hhj] hhhjr hNubhÒ)}(hhh](h@)}(h|Overwrite this function in your SSH server to enable GSSAPI
authentication.
The default implementation always returns false.h]h|Overwrite this function in your SSH server to enable GSSAPI
authentication.
The default implementation always returns false.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hs/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.enable_auth_gssapihKhj hhubjX )}(hhh](j] )}(hhh](jb )}(hreturns boolh]hReturns bool
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hj hK ubjr )}(h)Whether GSSAPI authentication is enabled.h]h@)}(hj¬ h]h)Whether GSSAPI authentication is enabled.
}(hj® hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjª ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj hKhj hhubj] )}(hhh](jb )}(hseeh]hSee
}(hjÊ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjÇ hj hK ubjr )}(h
`.ssh_gss`h]h@)}(hjÚ h]hF)}(hjÚ h]hL)}(hjÚ h]hssh_gss
}(hjâ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjß ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjì refexplicithgj hihhjhkssh_gsshmhnhouh*hEhNhNhjÜ ubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjØ ubah}(h ]h"]h$]h&]h(]uh*jq hjÇ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj hKhj hhubeh}(h ]h"]h$]h&]h(]uh*jW hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj] hhhjr hNubeh}(h ]h"]h$]h&]h(]j pyj methodj j! j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Echeck_port_forward_request() (paramiko.server.ServerInterface method):paramiko.server.ServerInterface.check_port_forward_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h9ServerInterface.check_port_forward_request(address, port)h](h¸)}(hcheck_port_forward_requesth]hcheck_port_forward_request
}(hj7 hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj3 hhh{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_port_forward_requesthNubj )}(h
address, porth](j )}(haddressh]haddress
}(hjJ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjF ubj )}(hporth]hport
}(hjX hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjF ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj3 hhhjE hNubeh}(h ]j. ah"]h$]j. ah&]h(]h̉h͌paramiko.serverhÏhhЌ*ServerInterface.check_port_forward_requestuh*hhj0 hhhjE hNubhÒ)}(hhh](h@)}(hX^ Handle a request for port forwarding. The client is asking that
connections to the given address and port be forwarded back across
this ssh connection. An address of ``"0.0.0.0"`` indicates a global
address (any address associated with this server) and a port of ``0``
indicates that no specific port is requested (usually the OS will pick
a port).h](h¨Handle a request for port forwarding. The client is asking that
connections to the given address and port be forwarded back across
this ssh connection. An address of
}(hjw hhhNhNubhL)}(h
``"0.0.0.0"``h]h "0.0.0.0"
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjw ubhT indicates a global
address (any address associated with this server) and a port of
}(hjw hhhNhNubhL)}(h``0``h]h0
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjw ubhP
indicates that no specific port is requested (usually the OS will pick
a port).
}(hjw hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?h{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_port_forward_requesthKhjt hhubh@)}(h©The default implementation always returns ``False``, rejecting the
port forwarding request. If the request is accepted, you should return
the port opened for listening.h](h*The default implementation always returns
}(hjª hhhNhNubhL)}(h ``False``h]hFalse
}(hj² hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjª ubhv, rejecting the
port forwarding request. If the request is accepted, you should return
the port opened for listening.
}(hjª hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj© hKhjt hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjÐ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjÍ hjE hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h&address (str) -- the requested addressh](j )}(haddressh]haddress
}(hjë hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjç ubh (
}(hjç hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjý ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetj hjuh*hEhjç ubh)
}(hjç hhhNhNubh –
}(hjç hhhNhNubhthe requested address
}(hjç hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjä ubah}(h ]h"]h$]h&]h(]uh*j hjá ubj )}(hhh]h@)}(h port (int) -- the requested porth](j )}(hporth]hport
}(hj8 hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj4 ubh (
}(hj4 hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjM hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjJ ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetjO hjuh*hEhj4 ubh)
}(hj4 hhhNhNubh –
}(hj4 hhhNhNubhthe requested port
}(hj4 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj1 ubah}(h ]h"]h$]h&]h(]uh*j hjá ubeh}(h ]h"]h$]h&]h(]uh*j hjÞ ubah}(h ]h"]h$]h&]h(]uh*jq hjÍ ubeh}(h ]h"]h$]h&]h(]uh*j\ hjÊ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjE hK ubjr )}(hhh]h@)}(hGthe port number (int) that was opened for listening, or False
to rejecth](hthe port number (
}(hj£ hhhNhNubhF)}(h`int`h]hL)}(hj h]hint
}(hj¯ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj« ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj¹ refexplicithgjr hihhkinthmhnhouh*hEhNhNhj£ hhubh$) that was opened for listening, or
}(hj£ hhhNhNubhL)}(h ``False``h]hFalse
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj£ hhhNhNubh
to reject
}(hj£ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hjÊ ubeh}(h ]h"]h$]h&]h(]uh*jW hjt hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj0 hhhjE hNubeh}(h ]h"]h$]h&]h(]j j j methodj j j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Fcancel_port_forward_request() (paramiko.server.ServerInterface method);paramiko.server.ServerInterface.cancel_port_forward_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h:ServerInterface.cancel_port_forward_request(address, port)h](h¸)}(hcancel_port_forward_requesth]hcancel_port_forward_request
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj hhh|/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.cancel_port_forward_requesthNubj )}(h
address, porth](j )}(haddressh]haddress
}(hj, hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj( ubj )}(hporth]hport
}(hj: hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj( ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj hhhj' hNubeh}(h ]j ah"]h$]j ah&]h(]h̉h͌paramiko.serverhÏhhЌ+ServerInterface.cancel_port_forward_requestuh*hhj hhhj' hNubhÒ)}(hhh](h@)}(h«The client would like to cancel a previous port-forwarding request.
If the given address and port is being forwarded across this ssh
connection, the port should be closed.h]h«The client would like to cancel a previous port-forwarding request.
If the given address and port is being forwarded across this ssh
connection, the port should be closed.
}(hjY hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h|/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.cancel_port_forward_requesthKhjV hhubjX )}(hhh]j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjn hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjk hj' hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h&address (str) -- the forwarded addressh](j )}(haddressh]haddress
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj
ubh (
}(hj
hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetj hjuh*hEhj
ubh)
}(hj
hhhNhNubh –
}(hj
hhhNhNubhthe forwarded address
}(hj
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh]h@)}(h port (int) -- the forwarded porth](j )}(hporth]hport
}(hjÖ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjÒ ubh (
}(hjÒ hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjë hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjè ubah}(h ]h"]h$]h&]h(] refdomainj³ refexplicitreftypej± reftargetjí hjuh*hEhjÒ ubh)
}(hjÒ hhhNhNubh –
}(hjÒ hhhNhNubhthe forwarded port
}(hjÒ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÏ ubah}(h ]h"]h$]h&]h(]uh*j hj ubeh}(h ]h"]h$]h&]h(]uh*j hj| ubah}(h ]h"]h$]h&]h(]uh*jq hjk ubeh}(h ]h"]h$]h&]h(]uh*j\ hjh ubah}(h ]h"]h$]h&]h(]uh*jW hjV hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj hhhj' hNubeh}(h ]h"]h$]h&]h(]j j³ j methodj j? j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:?check_global_request() (paramiko.server.ServerInterface method)4paramiko.server.ServerInterface.check_global_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h/ServerInterface.check_global_request(kind, msg)h](h¸)}(hcheck_global_requesth]hcheck_global_request
}(hjU hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hjQ hhhu/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_global_requesthNubj )}(h kind, msgh](j )}(hkindh]hkind
}(hjh hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjd ubj )}(hmsgh]hmsg
}(hjv hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hjd ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hjQ hhhjc hNubeh}(h ]jL ah"]h$]jL ah&]h(]h̉h͌paramiko.serverhÏhhЌ$ServerInterface.check_global_requestuh*hhjN hhhjc hNubhÒ)}(hhh](h@)}(hÛHandle a global request of the given ``kind``. This method is called
in server mode and client mode, whenever the remote host makes a global
request. If there are any arguments to the request, they will be in
``msg``.h](h%Handle a global request of the given
}(hj hhhNhNubhL)}(h``kind``h]hkind
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh¦. This method is called
in server mode and client mode, whenever the remote host makes a global
request. If there are any arguments to the request, they will be in
}(hj hhhNhNubhL)}(h``msg``h]hmsg
}(hj¯ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj ubh.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hu/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_global_requesthKhj hhubh@)}(hThere aren't any useful global requests defined, aside from port
forwarding, so usually this type of request is an extension to the
protocol.h]hThere aren’t any useful global requests defined, aside from port
forwarding, so usually this type of request is an extension to the
protocol.
}(hjÈ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÇ hKhj hhubh@)}(hX If the request was successful and you would like to return contextual
data to the remote host, return a tuple. Items in the tuple will be
sent back with the successful result. (Note that the items in the
tuple can only be strings, ints, longs, or bools.)h]hX If the request was successful and you would like to return contextual
data to the remote host, return a tuple. Items in the tuple will be
sent back with the successful result. (Note that the items in the
tuple can only be strings, ints, longs, or bools.)
}(hjÖ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÇ hK
hj hhubh@)}(hmThe default implementation always returns ``False``, indicating that it
does not support any global requests.h](h*The default implementation always returns
}(hjä hhhNhNubhL)}(h ``False``h]hFalse
}(hjì hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjä ubh:, indicating that it
does not support any global requests.
}(hjä hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÇ hKhj hhubh note)}(hQPort forwarding requests are handled separately, in
`check_port_forward_request`.h]h@)}(hQPort forwarding requests are handled separately, in
`check_port_forward_request`.h](h4Port forwarding requests are handled separately, in
}(hj
hhhNhNubhF)}(h`check_port_forward_request`h]hL)}(hj h]hcheck_port_forward_request
}(hj hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithgj hihhkcheck_port_forward_requesthmhnhouh*hEhNhNhj
ubh.
}(hj
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÇ hKhj ubah}(h ]h"]h$]h&]h(]uh*j hj hhhjÇ hNubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjC hjc hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h4kind (str) -- the kind of global request being made.h](j )}(hkindh]hkind
}(hja hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj] ubh (
}(hj] hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjv hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjs ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetjx hjuh*hEhj] ubh)
}(hj] hhhNhNubh –
}(hj] hhhNhNubh&the kind of global request being made.
}(hj] hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjZ ubah}(h ]h"]h$]h&]h(]uh*j hjW ubj )}(hhh]h@)}(h4msg (Message) -- any extra arguments to the request.h](j )}(hmsgh]hmsg
}(hj® hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjª ubh (
}(hjª hhhNhNubhF)}(hhh]j )}(h.Messageh]hMessage
}(hjà hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjÀ ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetMessagehjuh*hEhjª ubh)
}(hjª hhhNhNubh –
}(hjª hhhNhNubh#any extra arguments to the request.
}(hjª hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj§ ubah}(h ]h"]h$]h&]h(]uh*j hjW ubeh}(h ]h"]h$]h&]h(]uh*j hjT ubah}(h ]h"]h$]h&]h(]uh*jq hjC ubeh}(h ]h"]h$]h&]h(]uh*j\ hj@ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj hjc hK ubjr )}(hhh]h@)}(hDTrue or a tuple of data if the request was granted; False
otherwise.h](hL)}(h``True``h]hTrue
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj hhhNhNubh or a
}(hj hhhNhNubhF)}(h`tuple`h]hL)}(hj2 h]htuple
}(hj4 hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj0 ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj> refexplicithgj hihhktuplehmhnhouh*hEhNhNhj hhubh% of data if the request was granted;
}(hj hhhNhNubhL)}(h ``False``h]hFalse
}(hjR hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj hhhNhNubh
otherwise.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*jq hj ubeh}(h ]h"]h$]h&]h(]uh*j\ hj@ ubeh}(h ]h"]h$]h&]h(]uh*jW hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhjN hhhjc hNubeh}(h ]h"]h$]h&]h(]j j j methodj j j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Dcheck_channel_pty_request() (paramiko.server.ServerInterface method)9paramiko.server.ServerInterface.check_channel_pty_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(hgServerInterface.check_channel_pty_request(channel, term, width, height, pixelwidth, pixelheight, modes)h](h¸)}(hcheck_channel_pty_requesth]hcheck_channel_pty_request
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj hhhz/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_pty_requesthNubj )}(h<channel, term, width, height, pixelwidth, pixelheight, modesh](j )}(hchannelh]hchannel
}(hj± hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(htermh]hterm
}(hj¿ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(hwidthh]hwidth
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(hheighth]hheight
}(hjÛ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(h
pixelwidthh]h
pixelwidth
}(hjé hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(hpixelheighth]hpixelheight
}(hj÷ hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubj )}(hmodesh]hmodes
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj hhhj¬ hNubeh}(h ]j ah"]h$]j ah&]h(]h̉h͌paramiko.serverhÏhhЌ)ServerInterface.check_channel_pty_requestuh*hhj hhhj¬ hNubhÒ)}(hhh](h@)}(hDetermine if a pseudo-terminal of the given dimensions (usually
requested for shell access) can be provided on the given channel.h]hDetermine if a pseudo-terminal of the given dimensions (usually
requested for shell access) can be provided on the given channel.
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hz/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_pty_requesthKhj! hhubh@)}(h4The default implementation always returns ``False``.h](h*The default implementation always returns
}(hj3 hhhNhNubhL)}(h ``False``h]hFalse
}(hj; hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj3 ubh.
}(hj3 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj2 hKhj! hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hjY hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjV hj¬ hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h<channel (Channel) -- the Channel the pty request arrived on.h](j )}(hchannelh]hchannel
}(hjt hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjp ubh (
}(hjp hhhNhNubhF)}(hhh]j )}(h.Channelh]hChannel
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetChannelhjuh*hEhjp ubh)
}(hjp hhhNhNubh –
}(hjp hhhNhNubhthe
}(hjp hhhNhNubhF)}(h
`.Channel`h]hL)}(hj± h]hChannel
}(hj³ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhj¯ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj½ refexplicithgj hihhjhkChannelhmhnhouh*hEhNhNhjp hhubh the pty request arrived on.
}(hjp hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjm ubah}(h ]h"]h$]h&]h(]uh*j hjj ubj )}(hhh]h@)}(h@term (str) -- type of terminal requested (for example, "vt100").h](j )}(htermh]hterm
}(hjä hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjà ubh (
}(hjà hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hjù hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjö ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetjû hjuh*hEhjà ubh)
}(hjà hhhNhNubh –
}(hjà hhhNhNubh)type of terminal requested (for example,
}(hjà hhhNhNubhL)}(h``"vt100"``h]h"vt100"
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjà hhhNhNubh).
}(hjà hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÝ ubah}(h ]h"]h$]h&]h(]uh*j hjj ubj )}(hhh]h@)}(h-width (int) -- width of screen in characters.h](j )}(hwidthh]hwidth
}(hjB hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj> ubh (
}(hj> hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjW hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjT ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetjY hjuh*hEhj> ubh)
}(hj> hhhNhNubh –
}(hj> hhhNhNubhwidth of screen in characters.
}(hj> hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj; ubah}(h ]h"]h$]h&]h(]uh*j hjj ubj )}(hhh]h@)}(h/height (int) -- height of screen in characters.h](j )}(hheighth]hheight
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj ubh (
}(hj hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hj£ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetj¥ hjuh*hEhj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubhheight of screen in characters.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j hjj ubj )}(hhh]h@)}(hNpixelwidth (int) -- width of screen in pixels, if known (may be 0 if unknown).h](j )}(h
pixelwidthh]h
pixelwidth
}(hjÚ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hjÖ ubh (
}(hjÖ hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjï hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjì ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetjñ hjuh*hEhjÖ ubh)
}(hjÖ hhhNhNubh –
}(hjÖ hhhNhNubh,width of screen in pixels, if known (may be
}(hjÖ hhhNhNubhL)}(h``0``h]h0
}(hj! hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÖ hhhNhNubh
if unknown).
}(hjÖ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÓ ubah}(h ]h"]h$]h&]h(]uh*j hjj ubj )}(hhh]h@)}(hPpixelheight (int) -- height of screen in pixels, if known (may be 0 if unknown).h](j )}(hpixelheighth]hpixelheight
}(hj8! hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj4! ubh (
}(hj4! hhhNhNubhF)}(hhh]j )}(hinth]hint
}(hjM! hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hjJ! ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej± reftargetjO! hjuh*hEhj4! ubh)
}(hj4! hhhNhNubh –
}(hj4! hhhNhNubh-height of screen in pixels, if known (may be
}(hj4! hhhNhNubhL)}(h``0``h]h0
}(hjq! hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj4! hhhNhNubh
if unknown).
}(hj4! hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj1! ubah}(h ]h"]h$]h&]h(]uh*j hjj ubeh}(h ]h"]h$]h&]h(]uh*j hjg ubah}(h ]h"]h$]h&]h(]uh*jq hjV ubeh}(h ]h"]h$]h&]h(]uh*j\ hjS ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj¤! hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj¡! hj¬ hK ubjr )}(hhh]h@)}(h@True if the pseudo-terminal has been allocated; False
otherwise.h](hL)}(h``True``h]hTrue
}(hj¹! hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjµ! hhhNhNubh, if the pseudo-terminal has been allocated;
}(hjµ! hhhNhNubhL)}(h ``False``h]hFalse
}(hjË! hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjµ! hhhNhNubh
otherwise.
}(hjµ! hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj²! ubah}(h ]h"]h$]h&]h(]uh*jq hj¡! ubeh}(h ]h"]h$]h&]h(]uh*j\ hjS ubeh}(h ]h"]h$]h&]h(]uh*jW hj! hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj hhhj¬ hNubeh}(h ]h"]h$]h&]h(]j j j methodj j" j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Fcheck_channel_shell_request() (paramiko.server.ServerInterface method);paramiko.server.ServerInterface.check_channel_shell_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h4ServerInterface.check_channel_shell_request(channel)h](h¸)}(hcheck_channel_shell_requesth]hcheck_channel_shell_request
}(hj" hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj" hhh|/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_shell_requesthNubj )}(hchannelh]j )}(hchannelh]hchannel
}(hj*" hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj&" ubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj" hhhj%" hNubeh}(h ]j" ah"]h$]j" ah&]h(]h̉h͌paramiko.serverhÏhhЌ+ServerInterface.check_channel_shell_requestuh*hhj" hhhj%" hNubhÒ)}(hhh](h@)}(hÑDetermine if a shell will be provided to the client on the given
channel. If this method returns ``True``, the channel should be
connected to the stdin/stdout of a shell (or something that acts like
a shell).h](hbDetermine if a shell will be provided to the client on the given
channel. If this method returns
}(hjI" hhhNhNubhL)}(h``True``h]hTrue
}(hjQ" hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjI" ubhg, the channel should be
connected to the stdin/stdout of a shell (or something that acts like
a shell).
}(hjI" hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?h|/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_shell_requesthKhjF" hhubh@)}(h4The default implementation always returns ``False``.h](h*The default implementation always returns
}(hjj" hhhNhNubhL)}(h ``False``h]hFalse
}(hjr" hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjj" ubh.
}(hjj" hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hji" hKhjF" hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj" hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj" hj%" hK ubjr )}(hhh]h@)}(h8channel (Channel) -- the Channel the request arrived on.h](j )}(hchannelh]hchannel
}(hj¥" hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj¡" ubh (
}(hj¡" hhhNhNubhF)}(hhh]j )}(h.Channelh]hChannel
}(hjº" hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj·" ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetChannelhjuh*hEhj¡" ubh)
}(hj¡" hhhNhNubh –
}(hj¡" hhhNhNubhthe
}(hj¡" hhhNhNubhF)}(h
`.Channel`h]hL)}(hjâ" h]hChannel
}(hjä" hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjà" ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjî" refexplicithgjD" hihhjhkChannelhmhnhouh*hEhNhNhj¡" hhubh the request arrived on.
}(hj¡" hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj" ubah}(h ]h"]h$]h&]h(]uh*jq hj" ubeh}(h ]h"]h$]h&]h(]uh*j\ hj" ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hj# hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj# hj%" hK ubjr )}(hhh]h@)}(h^True if this channel is now hooked up to a shell; False if
a shell can't or won't be provided.h](hL)}(h``True``h]hTrue
}(hj,# hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj(# hhhNhNubh. if this channel is now hooked up to a shell;
}(hj(# hhhNhNubhL)}(h ``False``h]hFalse
}(hj># hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj(# hhhNhNubh+ if
a shell can’t or won’t be provided.
}(hj(# hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj%# ubah}(h ]h"]h$]h&]h(]uh*jq hj# ubeh}(h ]h"]h$]h&]h(]uh*j\ hj" ubeh}(h ]h"]h$]h&]h(]uh*jW hjF" hhhNhNubeh}(h ]h"]h$]h&]h(]uh*hÑhj" hhhj%" hNubeh}(h ]h"]h$]h&]h(]j jÏ" j methodj jt# j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Echeck_channel_exec_request() (paramiko.server.ServerInterface method):paramiko.server.ServerInterface.check_channel_exec_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h<ServerInterface.check_channel_exec_request(channel, command)h](h¸)}(hcheck_channel_exec_requesth]hcheck_channel_exec_request
}(hj# hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj# hhh{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_exec_requesthNubj )}(hchannel, commandh](j )}(hchannelh]hchannel
}(hj# hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj# ubj )}(hcommandh]hcommand
}(hj«# hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj# ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj# hhhj# hNubeh}(h ]j# ah"]h$]j# ah&]h(]h̉h͌paramiko.serverhÏhhЌ*ServerInterface.check_channel_exec_requestuh*hhj# hhhj# hNubhÒ)}(hhh](h@)}(h¶Determine if a shell command will be executed for the client. If this
method returns ``True``, the channel should be connected to the stdin,
stdout, and stderr of the shell command.h](hVDetermine if a shell command will be executed for the client. If this
method returns
}(hjÊ# hhhNhNubhL)}(h``True``h]hTrue
}(hjÒ# hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÊ# ubhX, the channel should be connected to the stdin,
stdout, and stderr of the shell command.
}(hjÊ# hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?h{/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_exec_requesthKhjÇ# hhubh@)}(h4The default implementation always returns ``False``.h](h*The default implementation always returns
}(hjë# hhhNhNubhL)}(h ``False``h]hFalse
}(hjó# hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjë# ubh.
}(hjë# hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjê# hKhjÇ# hhubjX )}(hhh](j] )}(hhh](jb )}(h
Parametersh]h
Parameters
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hj$ hj# hK ubjr )}(hhh]j )}(hhh](j )}(hhh]h@)}(h8channel (Channel) -- the Channel the request arrived on.h](j )}(hchannelh]hchannel
}(hj,$ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj($ ubh (
}(hj($ hhhNhNubhF)}(hhh]j )}(h.Channelh]hChannel
}(hjA$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj>$ ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej± reftargetChannelhjuh*hEhj($ ubh)
}(hj($ hhhNhNubh –
}(hj($ hhhNhNubhthe
}(hj($ hhhNhNubhF)}(h
`.Channel`h]hL)}(hji$ h]hChannel
}(hjk$ hhhNhNubah}(h ]h"](hWpypy-objeh$]h&]h(]uh*hKhjg$ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainju$ refexplicithgjÅ# hihhjhkChannelhmhnhouh*hEhNhNhj($ hhubh the request arrived on.
}(hj($ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj%$ ubah}(h ]h"]h$]h&]h(]uh*j hj"$ ubj )}(hhh]h@)}(h(command (str) -- the command to execute.h](j )}(hcommandh]hcommand
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]hjuh*j hj$ ubh (
}(hj$ hhhNhNubhF)}(hhh]j )}(hstrh]hstr
}(hj±$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j hj®$ ubah}(h ]h"]h$]h&]h(] refdomainjV$ refexplicitreftypej± reftargetj³$ hjuh*hEhj$ ubh)
}(hj$ hhhNhNubh –
}(hj$ hhhNhNubhthe command to execute.
}(hj$ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj$ ubah}(h ]h"]h$]h&]h(]uh*j hj"$ ubeh}(h ]h"]h$]h&]h(]uh*j hj$ ubah}(h ]h"]h$]h&]h(]uh*jq hj$ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj$ ubj] )}(hhh](jb )}(hReturnsh]hReturns
}(hjö$ hhhNhNubah}(h ]h"]h$]h&]h(]uh*ja hjó$ hj# hK ubjr )}(hhh]h@)}(hTrue if this channel is now hooked up to the stdin, stdout, and
stderr of the executing command; False if the command will not
be executed.h](hL)}(h``True``h]hTrue
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj% hhhNhNubh] if this channel is now hooked up to the stdin, stdout, and
stderr of the executing command;
}(hj% hhhNhNubhL)}(h ``False``h]hFalse
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhj% hhhNhNubh% if the command will not
be executed.
}(hj% hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj% ubah}(h ]h"]h$]h&]h(]uh*jq hjó$ ubeh}(h ]h"]h$]h&]h(]uh*j\ hj$ ubeh}(h ]h"]h$]h&]h(]uh*jW hjÇ# hhhNhNubh,versionmodified)}(hNew in version 1.1.h]h@)}(hNew in version 1.1.h]h inline)}(hNew in version 1.1.h]hNew in version 1.1.
}(hjS% hhhNhNubah}(h ]h"]jG% ah$]h&]h(]uh*jQ% hjM% ubah}(h ]h"]h$]h&]h(]translatableuh*h?hjI% hhhjê# hKubah}(h ]h"]h$]h&]h(]typeversionaddedversion1.1uh*jG% hhhjê# hKhjÇ# ubeh}(h ]h"]h$]h&]h(]uh*hÑhj# hhhj# hNubeh}(h ]h"]h$]h&]h(]j jV$ j methodj j~% j¡ uh*hhhhhÓhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Jcheck_channel_subsystem_request() (paramiko.server.ServerInterface method)?paramiko.server.ServerInterface.check_channel_subsystem_requesthNtauh*h-hhÓhhhNhNubh)}(hhh](h)}(h>ServerInterface.check_channel_subsystem_request(channel, name)h](h¸)}(hcheck_channel_subsystem_requesth]hcheck_channel_subsystem_request
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*h·hj% hhh/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_subsystem_requesthNubj )}(h
channel, nameh](j )}(hchannelh]hchannel
}(hj§% hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj£% ubj )}(hnameh]hname
}(hjµ% hhhNhNubah}(h ]h"]h$]h&]h(]h¤h¥uh*j hj£% ubeh}(h ]h"]h$]h&]h(]h¤h¥uh*j hj% hhhj¢% hNubeh}(h ]j% ah"]h$]j% ah&]h(]h̉h͌paramiko.serverhÏhhЌ/ServerInterface.check_channel_subsystem_requestuh*hhj% hhhj¢% hNubhÒ)}(hhh](h@)}(hX Determine if a requested subsystem will be provided to the client on
the given channel. If this method returns ``True``, all future I/O
through this channel will be assumed to be connected to the requested
subsystem. An example of a subsystem is ``sftp``.h](hpDetermine if a requested subsystem will be provided to the client on
the given channel. If this method returns
}(hjÔ% hhhNhNubhL)}(h``True``h]hTrue
}(hjÜ% hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÔ% ubh, all future I/O
through this channel will be assumed to be connected to the requested
subsystem. An example of a subsystem is
}(hjÔ% hhhNhNubhL)}(h``sftp``h]hsftp
}(hjî% hhhNhNubah}(h ]h"]h$]h&]h(]uh*hKhjÔ% ubh.
}(hjÔ% hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?h/home/jforcier/Code/oss/paramiko/paramiko/server.py:docstring of paramiko.server.ServerInterface.check_channel_subsystem_requesthKhjÑ% hhubh@)}(hÙThe default implementation checks for a subsystem handler assigned via
`.Transport.set_subsystem_handler`.
If one has been set, the handler is invoked and this method returns
``True``. Otherwise it returns ``False``.h](hGThe default implementation checks for a subsystem handler assigned via
}(hj&