# 导入paramiko库用于SSH连接,以及sys库用于处理命令行参数 import paramiko import sys# 定义一个函数send_command,用于发送命令到SSH服务器并打印输出结果 def send_command(ssh_client, cmd):# 使用exec_command方法执行命令,并获取输入、输出和错误流stdin, stdout, stderr = ssh_client.exec_command(cmd)# 打印命令的标准输出print(stdout.read().decode('utf-8'))# 如果有标准错误输出,也打印出来if stderr.read().decode('utf-8'):print(stderr.read().decode('utf-8'))# 定义一个函数connect,用于建立SSH连接 def connect(host, port, user, password):try:# 创建SSHClient实例ssh_client = paramiko.SSHClient()# 设置策略,自动添加主机密钥到本地HostKeys对象,不需要手动确认ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 使用提供的主机、端口、用户名和密码连接到SSH服务器ssh_client.connect(host, port, username=user, password=password)return ssh_clientexcept paramiko.AuthenticationException:# 如果认证失败,打印错误信息print("Authentication failed, please verify your credentials")return Noneexcept paramiko.SSHException as sshException:# 如果无法建立SSH连接,打印错误信息print(f"Could not establish SSH connection: {sshException}")return Noneexcept Exception as e:# 如果发生其他异常,打印错误信息print(f"An error occurred: {e}")return None# 定义主函数main def main():# 检查命令行参数的数量是否正确if len(sys.argv) != 5:print("Usage: python SSH僵尸网络.py <host> <port> <user> <password>")return# 从命令行参数中获取主机、端口、用户名和密码host = sys.argv[1]port = int(sys.argv[2]) # 确保端口是整数user = sys.argv[3]password = sys.argv[4]# 尝试建立SSH连接ssh_client = connect(host, port, user, password)# 如果连接成功if ssh_client:# 进入循环,持续接收命令while True:# 获取用户输入的命令command = input("请输入要执行的命令(输入'exit'退出):")# 如果输入的是exit,就跳出循环并关闭连接if command.lower() == "exit":ssh_client.close()break# 发送并执行命令send_command(ssh_client, command)# 检查是否为主模块运行,如果是,则执行main函数 if __name__ == '__main__':main() 运行命令:python SSH_client.py IP 端口号 username password 或者按图运行