这是我的公钥出现在服务器上的时候:
>>> c = Connection(host=ip, user='root', port=22)
>>> c.run('uname -s')
Linux
<Result cmd='uname -s' exited=0>
这是从服务器中删除我的公钥时:
>>> c = Connection(host=ip, user='root', port=22)
>>> c.run('uname -s')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<decorator-gen-3>", line 2, in run
File "/usr/local/lib/python2.7/dist-packages/fabric/connection.py", line 23, in opens
self.open()
File "/usr/local/lib/python2.7/dist-packages/fabric/connection.py", line 488, in open
self.client.connect(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 424, in connect
passphrase,
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 691, in _auth
self._transport.auth_publickey(username, key))
File "/usr/local/lib/python2.7/dist-packages/paramiko/transport.py", line 1450, in auth_publickey
return self.auth_handler.wait_for_response(my_event)
File "/usr/local/lib/python2.7/dist-packages/paramiko/auth_handler.py", line 212, in wait_for_response
raise e
AttributeError: '_RSAPrivateKey' object has no attribute 'sign'
如何将密码传递给Connection? PS:我在新文档(2.0)中找不到它。
连接(主机=“[email protected]”,connect_kwargs={“密码”:“111111”})
我有将近 50 台服务器使用相同的用户名和密码,我该怎么办? 我无法输入的每一个服务器和密码。 我想知道怎么做?
我有将近 50 台服务器使用相同的用户名和密码,我该怎么办? 我无法输入的每一个服务器和密码。 我想知道怎么做?
最好的方法是使用 ssh 密钥。
如果你需要解决这个问题,你可以在任务之前添加到你的 fabfile.py 这行:
env.user = "username"
env.password = "bestpasswordever"
此致。
尝试但得到以下异常:[server] Executing task 'uptime'
[服务器] 运行:ps -ef|grep httpd | wc-l
c:\users\tmou\appdata\local\programs\python\python37-32\lib\site-packages\paramiko\ecdsakey.py:164: CryptographyDeprecationWarning: 支持不安全的公共构造
编码数据中的数字将在未来版本中删除。 请使用 EllipticCurvePublicKey.from_encoded_point
self.ecdsa_curve.curve_class(), pointinfo
致命错误:尝试连接到 c4t18815.itcs.hpe.com 超时(尝试 1 次)
基础异常:
时间到
中止。
最有用的评论
连接(主机=“[email protected]”,connect_kwargs={“密码”:“111111”})