Saat menggunakan connect_kwargs
dengan opsi key_filename
, seperti:
config = fabric.config.Config()
print("Connecting with ssh/config")
with fabric.Connection(
host=instancePrivateIp,
user='ec2-user',
config=config,
connect_kwargs={
"key_filename": keyFileName,
}) as c_instance:
Saya mendapatkan AttributeError
:
File "/home/dumontj/Projects/ami-builder/ami_builder/customization.py", line 26, in do_bash_customization
"key_filename": keyFileName,
File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 450, in __init__
self.connect_kwargs = self.resolve_connect_kwargs(connect_kwargs)
File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 490, in resolve_connect_kwargs
connect_kwargs["key_filename"].extend(
AttributeError: 'str' object has no attribute 'extend'
Dokumentasi menentukan bahwa key_filename
harus diberikan sebagai string, tetapi saya menemukan bahwa itu berfungsi jika Anda benar-benar memberikannya daftar:
with fabric.Connection(
host=instancePrivateIp,
user='ec2-user',
config=config,
connect_kwargs={
"key_filename": [keyFileName,],
}) as c_instance:
Jika ini adalah sintaks yang diinginkan, saya dapat memperbarui dokumentasi melalui PR (lihat https://github.com/fabric/fabric/blob/2.0/fabric/connection.py#L234). Kalau tidak, saya bisa mengubah fabric/connection.py
untuk memeriksa apakah sudah ada entri, lalu mengubahnya menjadi daftar jika perlu.
Saya melihat masalah yang sama pada 2.5. Namun, menggunakan daftar berfungsi.
Permasalahan yang sama. Sepertinya itu bisa menjadi bug konyol bagi saya, jadi pin ke 2.4.0 sampai kita mendengar lebih banyak dari upstream.
Saya mendapatkan masalah yang sama ketika Host diatur ke nama DNS. Saat diatur ke IP, pengecualian tidak terjadi.
Misalnya:
{'host': '127.0.0.1', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Works
{'host': 'some.dns.name', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Doesn't work
face_caches[self.face_img_paths[i].stem] = wajah
AttributeError: objek 'str' tidak memiliki atribut 'batang'
saya mendapatkan kesalahan ini. adakah yang bisa menyarankan saya solusi?
Orang lain membuat PR untuk mengubah dokumen pada Sep 2019, tetapi belum bergabung (Feb 2020): #2014
Ini juga terjadi pada saya ... dan juga, saya pikir penting untuk dapat mengatur jika saya hanya ingin terhubung menggunakan key_filename yang disediakan, daripada menggunakan info ssh_config.
Komentar yang paling membantu
Saya melihat masalah yang sama pada 2.5. Namun, menggunakan daftar berfungsi.