paramiko(ver:2.9.2)のconnect関数で使用できる引数disabled_algorithms
の説明をメモ書きします。
私の解釈ではdisabled_algorithmsに指定したアルゴリズムは使用せず、_preferred_keys に登録されたその他のアルゴリズムを使用するといった動きだと思っています。
コード使用例
import paramiko
IP = '10.22.33.123'
PORT = '22'
USER = 'centos'
KEY_FILE = '/Users/user/.ssh/mykey.pem'
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
rsa_key = paramiko.RSAKey.from_private_key_file(KEY_FILE)
client.connect(IP, PORT, USER, pkey=rsa_key, timeout=5.0, look_for_keys=False,
disabled_algorithms=dict(pubkeys=['rsa-sha2-256', 'rsa-sha2-512']))
# ↑ ここの処理
paramikoのtransport.pyのコメントを確認
:param dict disabled_algorithms:
If given, must be a dictionary mapping algorithm type to an
iterable of algorithm identifiers, which will be disabled for the
lifetime of the transport.
Keys should match the last word in the class' builtin algorithm
tuple attributes, such as ``"ciphers"`` to disable names within
``_preferred_ciphers``; or ``"kex"`` to disable something defined
inside ``_preferred_kex``. Values should exactly match members of
the matching attribute.
For example, if you need to disable
``diffie-hellman-group16-sha512`` key exchange (perhaps because
your code talks to a server which implements it differently from
Paramiko), specify ``disabled_algorithms={"kex":
["diffie-hellman-group16-sha512"]}``.
翻訳
与えられた場合、辞書マッピングアルゴリズムタイプである必要があります
アルゴリズム識別子の反復可能。これは、輸送の寿命。
キーは、クラスの組み込みアルゴリズムの最後の単語と一致する必要があります
内の名前を無効にする``"暗号"``などのタプル属性
`` _preferred_ciphers``; または``"kex" ``は、定義されたものを無効にします
``_preferred_kex``内。 値はのメンバーと完全に一致する必要があります
一致する属性。
たとえば、無効にする必要がある場合
`` diffie-hellman-group16-sha512``鍵交換(おそらく
コードは、それを実装するサーバーとは異なる方法でサーバーと通信します
Paramiko)、「disabled_algorithms = {"kex"」を指定します:
["diffie-hellman-group16-sha512"]}``。
paramikoのtransport.pyの一部コードを抜粋
# ~= HostKeyAlgorithms in OpenSSH land
_preferred_keys = (
"ssh-ed25519",
"ecdsa-sha2-nistp256",
"ecdsa-sha2-nistp384",
"ecdsa-sha2-nistp521",
"rsa-sha2-512",
"rsa-sha2-256",
"ssh-rsa",
"ssh-dss",
)
# ~= PubKeyAcceptedAlgorithms
_preferred_pubkeys = (
"ssh-ed25519",
"ecdsa-sha2-nistp256",
"ecdsa-sha2-nistp384",
"ecdsa-sha2-nistp521",
"rsa-sha2-512",
"rsa-sha2-256",
"ssh-rsa",
"ssh-dss",