Качване и сваляне на файлове чрез SSH с графичен потребителски интерфейс (GUI)
Това е прост скрипт на Python, който предоставя графичен потребителски интерфейс (GUI) за качване и сваляне на файлове чрез SSH.
Подробности за скрипта
Скриптът ви подканва да въведете следната информация:
IP адрес: Въведете IP адреса на отдалечения сървър.
SSH потребителско име: Въведете потребителското име, което да използвате за SSH удостоверяване.
След това скриптът представя две опции:
Качване на файл: Въведете локалния път на файла, който искате да качите, и отдалечения път на сървъра, където искате да го качите.
Изтегляне на файл: Въведете отдалечения път на файла, който искате да изтеглите, и локалния път, където искате да го запишете.
Забележка
Направил съм SSH ключът да е статичен. За това ще трябва да промените името на ключа с името на вашият ключ.
Предпоставки
Трябва да имате инсталиран Python на вашата система. Скриптът използва библиотеката tkinter за създаване на GUI
Как да започнете
Трябва да започнете със създаване на нов файл с разширение ".py". Отворете любимият си тестов редактор и добавете следният код:
# Author : Fedya Serafiev
# Version : 1.3
# License : MIT
# Copyright : Fedya Serafiev (2023)
# Github : https://github.com/fantomas4o/ssh-transfer-script.git
# Contact : https://urocibg.eu/
import tkinter as tk
import subprocess
class SSHFileTransferApp:
def __init__(self, root):
self.root = root
self.root.title("SSH File Transfer")
# Описание на променливите и тяхната инициализация
self.private_key_path = "~/.ssh/key.id_rsa"
self.ip_var = tk.StringVar()
self.username_var = tk.StringVar()
self.local_file_var = tk.StringVar()
self.remote_file_var = tk.StringVar()
# Създаване на текстовите полета
self.create_entry("IP адрес:", self.ip_var)
self.create_entry("Потребителско име за SSH:", self.username_var)
self.create_entry("Локален път до файла:", self.local_file_var)
self.create_entry("Път на сървъра до файла:", self.remote_file_var)
# Създаване на бутоните и резултатен текст
upload_button = self.create_button("Качване на файл", self.upload_file)
download_button = self.create_button("Сваляне на файл", self.download_file)
self.result_label = tk.Label(root, text="")
self.result_label.pack()
def create_entry(self, label_text, text_variable):
label = tk.Label(root, text=label_text)
label.pack()
entry = tk.Entry(root, textvariable=text_variable)
entry.pack()
return entry
def create_button(self, button_text, button_command):
button = tk.Button(root, text=button_text, command=button_command)
button.pack()
return button
def upload_file(self):
ip = self.ip_var.get()
username = self.username_var.get()
local_file_path = self.local_file_var.get()
remote_file_path = self.remote_file_var.get()
cmd = f'scp -i {self.private_key_path} {local_file_path} {username}@{ip}:{remote_file_path}'
subprocess.run(cmd, shell=True)
self.result_label.config(text="Файлът беше успешно качен.")
def download_file(self):
ip = self.ip_var.get()
username = self.username_var.get()
local_file_path = self.local_file_var.get()
remote_file_path = self.remote_file_var.get()
cmd = f'scp -i {self.private_key_path} {username}@{ip}:{remote_file_path} {local_file_path}'
subprocess.run(cmd, shell=True)
self.result_label.config(text="Файлът беше успешно свален.")
if __name__ == "__main__":
root = tk.Tk()
root.geometry("400x300") # Задаване на размерите на прозореца
app = SSHFileTransferApp(root)
root.mainloop()
Променете key.id_rsa с вашето име на ключа.
Запазете файла и му дайте име, примерно transfer-ssh.py
Отворете терминал и отидете до папката, съдържаща скрипта.
Стартирайте скрипта, като изпълните следната команда:
python3 transfer-ssh.py
Ще се отвори прозорецът на GUI. Следвайте подканите.
Това е.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut