Fixes in ssh paramiko
This commit is contained in:
parent
6cd4598708
commit
7c4895e32c
4 changed files with 69 additions and 40 deletions
|
|
@ -17,6 +17,9 @@ from modules.pastafari2.libraries.task import Task as SSHTask
|
|||
from modules.pastafari2.models.tasks import Task, LogTask
|
||||
from modules.pastafari2.libraries.configtask import config_task
|
||||
from modules.pastafari2.models.pastafari2 import ServerGroup, ServerDbTask, UpdateServerScripts
|
||||
from paramecio2.libraries.config_admin import config_admin
|
||||
from modules.pastafari2.settings.config_admin import pastafari_admin_i18n, pastafari_admin_i18n, pastafari_settings_i18n, pastafari_servers_i18n, pastafari_groups_i18n, pastafari_tasks_log_i18n, num_element_admin
|
||||
|
||||
from pathlib import Path
|
||||
import paramiko
|
||||
import socket
|
||||
|
|
@ -26,8 +29,8 @@ from collections import OrderedDict
|
|||
from importlib import import_module, reload
|
||||
from modules.pastafari2.libraries.progress import load_progress
|
||||
from modules.pastafari2.libraries.load_task import load_db_in_task
|
||||
from importlib import import_module
|
||||
from subprocess import call
|
||||
from settings import config
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
|
|
@ -48,6 +51,9 @@ t.env.directories.insert(1, os.path.dirname(__file__).replace('/admin', '')+'/te
|
|||
|
||||
system_path='./ssh/'
|
||||
|
||||
if hasattr(config, 'pastafari_system_path'):
|
||||
system_path=config.pastafari_system_path
|
||||
|
||||
base_path='modules/pastafari2/tasks'
|
||||
|
||||
if hasattr(config, 'pastafari_base_path'):
|
||||
|
|
@ -150,36 +156,37 @@ def pastafari2_edit_global_ssh_keys():
|
|||
|
||||
error=1
|
||||
|
||||
# -C "your_email@example.com" -f $HOME/.ssh/id_rsa
|
||||
if not os.path.isfile(system_path+'id_rsa'):
|
||||
|
||||
arr_type={'dsa': 'ssh-keygen -t dsa', 'ecdsa': 'ssh-keygen -t ecdsa -b 521', 'ed25519': 'ssh-keygen -t ed25519'}
|
||||
# -C "your_email@example.com" -f $HOME/.ssh/id_rsa
|
||||
|
||||
ssh_key_type=request.args.get('ssh_key_type')
|
||||
arr_type={'rsa': '-t rsa -b 4096', 'dsa': 'ssh-keygen -t dsa', 'ecdsa': 'ssh-keygen -t ecdsa -b 521', 'ed25519': 'ssh-keygen -t ed25519'}
|
||||
|
||||
if ssh_key_type in arr_type:
|
||||
ssh_key_type=request.args.get('ssh_key_type')
|
||||
|
||||
file_ssh_path='-f {}/id_rsa -q -N ""'.format(system_path)
|
||||
if ssh_key_type in arr_type:
|
||||
|
||||
if not os.path.isfile(system_path+'id_rsa'):
|
||||
file_ssh_path='-f {}/id_rsa -q -N ""'.format(system_path)
|
||||
|
||||
if call(arr_type[ssh_key_type]+' '+file_ssh_path, shell=True) > 0:
|
||||
if not os.path.isfile(system_path+'id_rsa'):
|
||||
|
||||
error=1
|
||||
else:
|
||||
error=0
|
||||
if call(arr_type[ssh_key_type]+' '+file_ssh_path, shell=True) > 0:
|
||||
|
||||
#try:
|
||||
error=1
|
||||
else:
|
||||
"""
|
||||
config_admin.insert(num_element_admin-1, [pastafari_servers_i18n(), 'modules.pastafari2.admin.dashboard', 'admin_app.pastafari2_dashboard', 'fa-linux'])
|
||||
config_admin.insert(num_element_admin, [pastafari_groups_i18n(), 'modules.pastafari2.admin.groups', 'admin_app.pastafari2_groups', 'fa-object-group'])
|
||||
config_admin.insert(num_element_admin+1, [pastafari_tasks_log_i18n(), 'modules.pastafari2.admin.tasks', 'admin_app.pastafari2_tasks', 'fa-file-text-o'])
|
||||
|
||||
#key=paramiko.RSAKey.generate(2048)
|
||||
#key=paramiko.Ed25519Key.generate()
|
||||
#key.write_private_key_file(system_path+'id_rsa')
|
||||
import_module('modules.pastafari2.admin.dashboard')
|
||||
import_module('modules.pastafari2.admin.groups')
|
||||
import_module('modules.pastafari2.admin.tasks')
|
||||
|
||||
#with open(system_path+'id_rsa.pub',"w") as pub_key:
|
||||
# pub_key.write("%s %s" % (key.get_name(), key.get_base64()))
|
||||
print(config_admin)
|
||||
"""
|
||||
|
||||
#except:
|
||||
|
||||
# error=1
|
||||
error=0
|
||||
|
||||
return {'error': error}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class Task:
|
|||
|
||||
#($server='', $ssh_user='root', $ssh_key_priv='./ssh/id_rsa', $ssh_key_password='', $ssh_path='leviathan', $mysql_conn=false)
|
||||
|
||||
def __init__(self, server, conn, remote_user='root', remote_password='', private_key='./ssh/id_rsa', password_key='', remote_path='pastafari2', task_id=0, data={}, port=22):
|
||||
def __init__(self, server, conn, remote_user='root', remote_password='', private_key='./ssh/id_rsa', password_key=None, remote_path='pastafari2', task_id=0, data={}, port=22):
|
||||
|
||||
self.config=config_task
|
||||
|
||||
|
|
@ -136,6 +136,9 @@ class Task:
|
|||
|
||||
"""
|
||||
|
||||
#if not os.path.isfile(self.private_key):
|
||||
|
||||
|
||||
if check_ssh_host.lookup(self.server)==None:
|
||||
|
||||
# Be tolerant for the first connect with hostkey policy
|
||||
|
|
@ -158,7 +161,11 @@ class Task:
|
|||
|
||||
#self.ssh.connect(self.server, port=self.port, username=self.remote_user, password=self.remote_password, pkey=rsa, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None)
|
||||
|
||||
self.ssh.connect(self.server, port=self.port, username=self.remote_user, password=self.remote_password, key_filename=self.private_key, passphrase=self.password_key, timeout=None, allow_agent=False, look_for_keys=False, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None)
|
||||
if self.remote_password:
|
||||
|
||||
self.ssh.connect(self.server, port=self.port, username=self.remote_user, password=self.remote_password, timeout=None, allow_agent=False, look_for_keys=False, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None)
|
||||
else:
|
||||
self.ssh.connect(self.server, port=self.port, username=self.remote_user, key_filename=self.private_key, passphrase=self.password_key, timeout=None, allow_agent=False, look_for_keys=False, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None)
|
||||
|
||||
if add_host:
|
||||
host_key.save(self.config.ssh_directory+'/known_hosts')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
from paramecio2.libraries.config_admin import config_admin
|
||||
from paramecio2.libraries.i18n import I18n, PGetText
|
||||
from settings import config
|
||||
import os
|
||||
|
||||
system_path='./ssh/'
|
||||
|
||||
if hasattr(config, 'pastafari_system_path'):
|
||||
system_path=config.pastafari_system_path
|
||||
|
||||
#modules_admin=[[I18n.lang('admin', 'users_admin', 'User\'s Admin'), 'paramecio.modules.admin.admin.ausers', 'ausers']]
|
||||
|
||||
|
|
@ -8,30 +15,37 @@ _=pgettext.gettext
|
|||
|
||||
#modules_admin=[[I18n.lang('admin', 'users_admin', 'User\'s Admin'), 'paramecio.modules.admin.admin.ausers', 'ausers']]
|
||||
|
||||
def pastafari_admin():
|
||||
def pastafari_admin_i18n():
|
||||
|
||||
return _('Pastafari admin')
|
||||
|
||||
def pastafari_settings():
|
||||
def pastafari_settings_i18n():
|
||||
|
||||
return _('Settings')
|
||||
|
||||
def pastafari_servers():
|
||||
def pastafari_servers_i18n():
|
||||
|
||||
return _('Servers')
|
||||
|
||||
def pastafari_groups():
|
||||
def pastafari_groups_i18n():
|
||||
|
||||
return _('Groups')
|
||||
|
||||
def pastafari_tasks_log():
|
||||
def pastafari_tasks_log_i18n():
|
||||
|
||||
return _('Tasks log')
|
||||
|
||||
config_admin.append([pastafari_admin()])
|
||||
config_admin.append([pastafari_admin_i18n()])
|
||||
|
||||
config_admin.append([pastafari_settings(), 'modules.pastafari2.admin.dashboard', 'admin_app.pastafari2_settings', 'fa-code'])
|
||||
config_admin.append([pastafari_servers(), 'modules.pastafari2.admin.dashboard', 'admin_app.pastafari2_dashboard', 'fa-linux'])
|
||||
config_admin.append([pastafari_groups(), 'modules.pastafari2.admin.groups', 'admin_app.pastafari2_groups', 'fa-object-group'])
|
||||
config_admin.append([pastafari_settings_i18n(), 'modules.pastafari2.admin.dashboard', 'admin_app.pastafari2_settings', 'fa-code'])
|
||||
|
||||
num_element_admin=len(config_admin)
|
||||
|
||||
#print(num_element_admin)
|
||||
|
||||
#if os.path.isfile(system_path+'id_rsa'):
|
||||
|
||||
config_admin.append([pastafari_servers_i18n(), 'modules.pastafari2.admin.dashboard', 'admin_app.pastafari2_dashboard', 'fa-linux'])
|
||||
config_admin.append([pastafari_groups_i18n(), 'modules.pastafari2.admin.groups', 'admin_app.pastafari2_groups', 'fa-object-group'])
|
||||
#config_admin.append([I18n.lang('pastafari2', 'tasks_edit', 'Tasks edit'), 'modules.pastafari2.admin.tasks_edit', 'admin_app.pastafari2_tasks_edit', 'fa-tasks'])
|
||||
config_admin.append([pastafari_tasks_log(), 'modules.pastafari2.admin.tasks', 'admin_app.pastafari2_tasks', 'fa-file-text-o'])
|
||||
config_admin.append([pastafari_tasks_log_i18n(), 'modules.pastafari2.admin.tasks', 'admin_app.pastafari2_tasks', 'fa-file-text-o'])
|
||||
|
|
|
|||
|
|
@ -9,9 +9,10 @@
|
|||
% if not regenerate:
|
||||
<p>
|
||||
<select name="ssh_key_type" id="ssh_key_type">
|
||||
<option value="rsa">RSA (more compatible)</option>
|
||||
<option value="dsa">DSA</option>
|
||||
<option value="ecdsa">ECDSA</option>
|
||||
<option value="ed25519" selected>ED25519</option>
|
||||
<option value="ed25519" selected>ED25519 (more secure)</option>
|
||||
</select>
|
||||
</p>
|
||||
<p><input type="submit" value="${txt_generate_key_button}" /></p>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue