scapy.layers.ssh

Secure Shell (SSH) Transport Layer Protocol

RFC 4250, 4251, 4252, 4253 and 4254

class scapy.layers.ssh.Mpint(_pkt, /, *, length=None, value=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.Mpint'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (Mpint).length>, <BitLenField (Mpint).value>]
class scapy.layers.ssh.NameList(_pkt, /, *, length=None, names=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.NameList'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (NameList).length>, <_ComaStrField (NameList).names>]
class scapy.layers.ssh.SSH(_pkt, /, *, packet_length=None, padding_length=None, pay=None, random_padding=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSH'>, <class 'scapy.packet.Packet'>]
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<IntField (SSH).packet_length>, <ByteField (SSH).padding_length>, <PacketLenField (SSH).pay>, <StrLenField (SSH).random_padding>]
mysummary()[source]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.layers.ssh.SSH'>)]
class scapy.layers.ssh.SSHCertificate(_pkt, /, *, format_identifier=<SSHString  |>, data=None)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHCertificate'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHCertificate).format_identifier>, <_SSHCertificate (SSHCertificate).data>]
class scapy.layers.ssh.SSHDisconnect(_pkt, /, *, type=1, reason_code=0, description=<SSHString  |>, language_tag=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHDisconnect'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHDisconnect).type>, <IntEnumField (SSHDisconnect).reason_code>, <PacketField (SSHDisconnect).description>, <PacketField (SSHDisconnect).language_tag>]
class scapy.layers.ssh.SSHExtInfo(_pkt, /, *, type=7, nr_extensions=None, extensions=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHExtInfo'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHExtInfo).type>, <FieldLenField (SSHExtInfo).nr_extensions>, <PacketListField (SSHExtInfo).extensions>]
class scapy.layers.ssh.SSHExtension(_pkt, /, *, extension_name=<SSHString  |>, extension_value=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHExtension'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHExtension).extension_name>, <PacketField (SSHExtension).extension_value>]
class scapy.layers.ssh.SSHIgnore(_pkt, /, *, type=2, data=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHIgnore'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHIgnore).type>, <PacketField (SSHIgnore).data>]
class scapy.layers.ssh.SSHKexDHInit(_pkt, /, *, type=30, e=<Mpint  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHKexDHInit'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHKexDHInit).type>, <PacketField (SSHKexDHInit).e>]
class scapy.layers.ssh.SSHKexDHReply(_pkt, /, *, type=31, K_S=<SSHString  |>, f=<Mpint  |>, H_hash=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHKexDHReply'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHKexDHReply).type>, <SSHPacketStringField (SSHKexDHReply).K_S>, <PacketField (SSHKexDHReply).f>, <SSHPacketStringField (SSHKexDHReply).H_hash>]
class scapy.layers.ssh.SSHKexInit(_pkt, /, *, type=20, cookie=b'', kex_algorithms=<NameList  |>, server_host_key_algorithms=<NameList  |>, encryption_algorithms_client_to_server=<NameList  |>, encryption_algorithms_server_to_client=<NameList  |>, mac_algorithms_client_to_server=<NameList  |>, mac_algorithms_server_to_client=<NameList  |>, compression_algorithms_client_to_server=<NameList  |>, compression_algorithms_server_to_client=<NameList  |>, languages_client_to_server=<NameList  |>, languages_server_to_client=<NameList  |>, first_kex_packet_follows=0, reserved=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHKexInit'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHKexInit).type>, <StrFixedLenField (SSHKexInit).cookie>, <PacketField (SSHKexInit).kex_algorithms>, <PacketField (SSHKexInit).server_host_key_algorithms>, <PacketField (SSHKexInit).encryption_algorithms_client_to_server>, <PacketField (SSHKexInit).encryption_algorithms_server_to_client>, <PacketField (SSHKexInit).mac_algorithms_client_to_server>, <PacketField (SSHKexInit).mac_algorithms_server_to_client>, <PacketField (SSHKexInit).compression_algorithms_client_to_server>, <PacketField (SSHKexInit).compression_algorithms_server_to_client>, <PacketField (SSHKexInit).languages_client_to_server>, <PacketField (SSHKexInit).languages_server_to_client>, <YesNoByteField (SSHKexInit).first_kex_packet_follows>, <IntField (SSHKexInit).reserved>]
class scapy.layers.ssh.SSHNewCompress(_pkt, /, *, type=3)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHNewCompress'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHNewCompress).type>]
class scapy.layers.ssh.SSHNewKeys(_pkt, /, *, type=21)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHNewKeys'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHNewKeys).type>]
class scapy.layers.ssh.SSHPacketStringField(name, sub_cls)[source]

Bases: PacketField

m2i(pkt, x)[source]
sub_cls
class scapy.layers.ssh.SSHPublicKey(_pkt, /, *, format_identifier=<SSHString  |>, data=None)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHPublicKey'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHPublicKey).format_identifier>, <_SSHPublicKey (SSHPublicKey).data>]
class scapy.layers.ssh.SSHPublicKeyEd25519(_pkt, /, *, key=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHPublicKeyEd25519'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHPublicKeyEd25519).key>]
class scapy.layers.ssh.SSHPublicKeyEd448(_pkt, /, *, key=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHPublicKeyEd448'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHPublicKeyEd448).key>]
class scapy.layers.ssh.SSHServiceAccept(_pkt, /, *, type=6, service_name=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHServiceAccept'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHServiceAccept).type>, <PacketField (SSHServiceAccept).service_name>]
class scapy.layers.ssh.SSHServiceDebug(_pkt, /, *, type=4, always_display=0, message=<SSHString  |>, language_tag=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHServiceDebug'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHServiceDebug).type>, <YesNoByteField (SSHServiceDebug).always_display>, <PacketField (SSHServiceDebug).message>, <PacketField (SSHServiceDebug).language_tag>]
class scapy.layers.ssh.SSHServiceRequest(_pkt, /, *, type=5, service_name=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHServiceRequest'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHServiceRequest).type>, <PacketField (SSHServiceRequest).service_name>]
class scapy.layers.ssh.SSHSignature(_pkt, /, *, format_identifier=<SSHString  |>, data=None)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHSignature'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHSignature).format_identifier>, <_SSHSignature (SSHSignature).data>]
class scapy.layers.ssh.SSHSignatureEd25519(_pkt, /, *, key=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHSignatureEd25519'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHSignatureEd25519).key>]
class scapy.layers.ssh.SSHSignatureEd448(_pkt, /, *, key=<SSHString  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHSignatureEd448'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketField (SSHSignatureEd448).key>]
class scapy.layers.ssh.SSHString(_pkt, /, *, length=None, value=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHString'>, <class 'scapy.packet.Packet'>]
default_payload_class(payload)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (SSHString).length>, <StrLenField (SSHString).value>]
class scapy.layers.ssh.SSHUnimplemented(_pkt, /, *, type=3, seq_num=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHUnimplemented'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SSHUnimplemented).type>, <IntField (SSHUnimplemented).seq_num>]
class scapy.layers.ssh.SSHVersionExchange(_pkt, /, *, lines=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.ssh.SSHVersionExchange'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<_SSHHeaderField (SSHVersionExchange).lines>]
mysummary()[source]
class scapy.layers.ssh.StrCRLFField(name: str, default: I | None, fmt: str = 'H', remain: int = 0)[source]

Bases: StrNullField

DELIMITER = b'\r\n'