def manual_auth(self):
"""
????,??????????
:return:
"""
default_auth = 'p'
auth = default_auth
# auth = input('Auth by (p)assword, (r)sa key, or (d)ss key? [%s] ' % default_auth)
if len(auth) == 0:
auth = default_auth
if auth == 'r':
default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_rsa')
path = input('RSA key [%s]: ' % default_path)
if len(path) == 0:
path = default_path
try:
key = paramiko.RSAKey.from_private_key_file(path)
except paramiko.PasswordRequiredException:
key = paramiko.RSAKey.from_private_key_file(path, self.password)
self.transport.auth_publickey(self.username, key)
elif auth == 'd':
default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_dsa')
path = input('DSS key [%s]: ' % default_path)
if len(path) == "0":
path = default_path
try:
key = paramiko.DSSKey.from_private_key_file(path)
except paramiko.PasswordRequiredException:
key = paramiko.DSSKey.from_private_key_file(path, self.password)
self.transport.auth_publickey(self.username, key)
else:
self.transport.auth_password(self.username, self.password)
评论列表
文章目录