首页 > 其他分享 >plink.exe 是 PuTTY 工具集中的一个命令行工具,用于通过 SSH(安全外壳协议)进行远程连接。它通常用于在没有图形界面的情况下实现 SSH 连接,适合脚本和自动化任务。 这些应用场景展示

plink.exe 是 PuTTY 工具集中的一个命令行工具,用于通过 SSH(安全外壳协议)进行远程连接。它通常用于在没有图形界面的情况下实现 SSH 连接,适合脚本和自动化任务。 这些应用场景展示

时间:2024-09-27 16:23:58浏览次数:9  
标签:Code plink bashCopy hostname exe SSH

plink.exe 是 PuTTY 工具集中的一个命令行工具,用于通过 SSH(安全外壳协议)进行远程连接。它通常用于在没有图形界面的情况下实现 SSH 连接,适合脚本和自动化任务。

在使用 plink.exe 时,你可以执行以下操作:

  • 连接到远程服务器:通过命令行指定用户名和主机地址。
  • 执行远程命令:可以直接在连接时指定要执行的命令。
  • 支持公钥认证:可以配置密钥文件以增强安全性。

例如,基本的用法格式如下:

bashCopy Code
plink.exe username@hostname

这会尝试连接到指定的主机并以给定的用户名登录。


plink.exe 是由 PuTTY 项目开发的一个工具。PuTTY 是一个开源的 SSH 和 Telnet 客户端,最初由 Simon Tatham 在 1998 年创建。该项目提供了一系列用于网络连接的工具,其中包括 plink.exe,主要用于在命令行环境中进行 SSH 连接。

起源和发展

  1. PuTTY 的创建:PuTTY 最初是为了满足对安全远程访问的需求而开发的。随着互联网的普及,SSH 成为一种常用的安全协议。

  2. 命令行工具plink.exe 被设计为 PuTTY 的命令行界面工具,允许用户在没有图形界面的情况下通过 SSH 连接到远程服务器。

  3. 功能扩展:除了基本的 SSH 连接功能外,plink.exe 还支持端口转发、脚本自动化等功能,使其在系统管理和自动化任务中非常有用。

  4. 广泛应用:由于其开源特性和灵活性,plink.exe 被广泛应用于各种操作系统环境,特别是在 Windows 系统上。

 plink.exe 是为了满足安全远程连接需求而发展而来的,其背后的 PuTTY 项目在网络安全领域具有重要影响。


plink.exe 的发展可以分为几个阶段,反映了其随着技术进步和用户需求变化而演变的过程:

1. 初始开发阶段

  • 1998 年:PuTTY 项目开始,由 Simon Tatham 开发。最初旨在提供一个轻量级的 SSH 和 Telnet 客户端,以满足安全远程访问的需求。
  • 推出 plink.exe:作为 PuTTY 套件的一部分,plink.exe 被引入,专注于命令行界面的 SSH 连接。

2. 功能扩展阶段

  • 2000 年代早期:随着 SSH 协议的普及,plink.exe 增加了对更多功能的支持,如端口转发和身份验证方式(如密钥认证)。
  • 脚本支持:用户开始利用 plink.exe 进行自动化脚本的编写,以简化远程操作。

3. 跨平台适应阶段

  • 2000 年代中期:虽然主要用于 Windows,但 PuTTY 和 plink.exe 开始支持其他操作系统,增加了跨平台的灵活性。
  • 开源社区的贡献:由于其开源性质,社区对 PuTTY 及其组件的贡献使得 plink.exe 得到不断改进。

4. 现代化与安全性增强阶段

  • 2010 年代:随着网络安全威胁的增加,plink.exe 加强了安全特性,包括对新型加密算法和协议版本的支持。
  • 用户界面与体验优化:尽管 plink.exe 是命令行工具,其文档和使用指南也得到了改善,以帮助用户更好地利用其功能。

5. 持续更新与维护阶段

  • 2020 年至今:PuTTY 和 plink.exe 继续接受定期更新,修复漏洞,提升性能,并保持对新技术的兼容性。
  • 社区支持:随着云计算和 DevOps 的兴起,plink.exe 在自动化和远程管理中的应用仍然广泛,持续获得用户的支持和反馈。

 plink.exe 的发展反映了远程访问技术的演变与网络安全需求的变化,依然是系统管理员和开发人员的重要工具之一。


plink.exe 的功能可以根据不同的使用场景进行分类,主要包括以下几类:

1. 远程登录

  • 通过 SSH 协议连接到远程服务器,允许用户在命令行界面下进行操作。

2. 执行远程命令

  • 在连接时直接指定要在远程主机上执行的命令,适合快速操作和脚本化任务。

3. 端口转发

  • 支持 SSH 隧道,可以将本地端口或远程端口转发到其他地址和端口,实现安全的数据传输。

4. 批处理和自动化

  • 可以在脚本中使用,支持在不需要交互的情况下执行命令,非常适合自动化任务。

5. 公钥认证支持

  • 支持使用公钥进行身份验证,提高安全性。

6. 与其他工具集成

  • 可以与其他 PuTTY 工具(如 pscpputtygen)配合使用,实现更复杂的操作。

这些功能使得 plink.exe 成为一个灵活且强大的命令行工具,适合各种远程管理和自动化任务。


plink.exe 的底层原理主要基于以下几个关键概念和技术:

1. SSH 协议

  • plink.exe 使用 SSH(Secure Shell)协议来建立安全的远程连接。SSH 提供加密的通信通道,确保数据在传输过程中不被窃取或篡改。

2. 客户端-服务器模型

  • plink.exe 作为客户端,与远程服务器进行通信。它通过发送请求和接收响应,实现命令的执行和数据的传输。

3. 加密和身份验证

  • 在连接过程中,plink.exe 使用公钥和私钥进行身份验证,确保只有经过授权的用户才能访问远程系统。此外,所有传输的数据都经过加密,保证安全性。

4. 网络编程

  • plink.exe 利用 sockets 实现网络通信,通过 TCP/IP 协议与远程主机建立连接。

5. 端口转发

  • 支持本地和远程端口转发功能,通过 SSH 隧道建立安全的连接,可以在不安全的网络中使用安全的方式进行数据传输。

6. 命令行界面

  • plink.exe 采用命令行界面设计,允许用户通过参数和选项来控制其行为,使得其易于集成于各种脚本和自动化任务中。

这些原理共同构成了 plink.exe 的工作机制,使其成为一个强大且灵活的远程访问工具。


plink.exe 的技术细节包括以下几个方面:

1. 协议实现

  • plink.exe 实现了 SSH 协议的各个层面,包括 SSH-1 和 SSH-2。SSH-2 是更为安全和现代的版本,支持更强的加密算法和认证方式。

2. 加密算法

  • 支持多种加密算法,如 AES, Blowfish, 3DES 等,以确保数据传输的安全性。使用公钥加密(如 RSA、DSA)进行身份验证和会话密钥交换。

3. 身份验证机制

  • 支持多种身份验证方式,包括密码认证、公钥认证和基于代理的认证。公钥认证可以使用 SSH 密钥文件进行管理。

4. 端口转发

  • 实现了本地和远程端口转发功能,使得用户能够安全地访问内部网络资源。例如,可以将本地某个端口的流量转发到远程服务器的指定端口。

5. 命令行参数

  • 提供丰富的命令行选项,允许用户自定义连接行为,例如:
    • -ssh 指定使用 SSH 协议。
    • -P 指定端口。
    • -i 指定私钥文件。
    • -t 为终端分配伪终端。

6. 错误处理和调试

  • 内置错误处理机制,能够捕获连接失败、认证失败等问题,并提供相应的错误信息。此外,还支持调试模式,可通过 -v 选项获取详细的调试信息。

7. 脚本集成

  • 由于其命令行特性,plink.exe 很容易与批处理脚本、PowerShell 脚本或其他自动化工具结合使用,适合进行远程任务的自动化管理。

8. Windows 环境兼容

  • plink.exe 是为 Windows 平台设计的,因此它利用 Windows API 来处理文件和网络操作,确保与 Windows 系统的良好兼容性。

这些技术细节使得 plink.exe 成为一个功能强大且灵活的工具,适用于各种远程管理和自动化需求。


plink.exe 的架构主要由以下几个关键组件组成:

1. 用户界面

  • 命令行接口plink.exe 采用命令行方式与用户交互,允许通过命令行参数输入配置选项。

2. SSH 协议栈

  • 协议处理层:实现 SSH-1 和 SSH-2 协议的各个方面,包括握手、密钥交换、加密和数据传输。此层负责处理与服务器之间的通信逻辑。

3. 加密模块

  • 加密算法库:集成多种对称和非对称加密算法,如 AES、RSA、DSA 等,确保数据在传输过程中的安全性。

4. 身份验证模块

  • 认证处理:支持多种身份验证方式,例如密码认证和公钥认证。该模块管理用户的身份验证过程,并确保只有合法用户可以连接。

5. 网络通信层

  • Socket 编程:使用 TCP/IP 协议进行网络通信,负责创建和管理与远程服务器的连接。

6. 端口转发功能

  • 转发控制:实现本地和远程端口转发,使用户能够通过 SSH 隧道安全访问其他服务。

7. 错误处理机制

  • 日志记录:捕获并记录错误信息,提供调试支持,以便用户排查连接和认证过程中可能出现的问题。

8. 脚本和自动化支持

  • 集成 API:允许与脚本和其他工具结合使用,便于用户进行自动化任务管理。

9. 配置管理

  • 设置存储:支持加载和保存用户的连接配置,方便重复使用。

这种架构设计使得 plink.exe 能够高效、安全地实现 SSH 连接和远程管理,同时具备良好的可扩展性和兼容性。


plink.exe 的框架可以分为几个主要部分,确保其功能的完整性和高效性。以下是 plink.exe 的框架结构:

1. 命令行接口

  • 参数解析:处理用户输入的命令行参数,支持多种选项配置,如主机地址、端口、身份验证方式等。

2. 连接管理

  • 会话建立:负责与远程服务器建立 SSH 会话,包括连接初始化、握手和加密协商。
  • 保持连接:处理连接的生命周期,支持心跳机制以维持连接有效性。

3. 协议实现

  • SSH 协议栈:实现 SSH-1 和 SSH-2 协议的核心逻辑,包括:
    • 握手过程:建立安全通道的初始步骤。
    • 密钥交换:确保数据传输的安全性。
    • 数据加密和解密:在传输过程中对数据进行加密和解密。

4. 身份验证模块

  • 认证方式:支持多种身份验证机制(如密码、公钥),并管理认证流程。

5. 数据处理层

  • 输入/输出流:处理数据的读写,包括从标准输入读取命令和将输出发送到标准输出。

6. 端口转发模块

  • 本地和远程转发:实现 SSH 端口转发功能,允许用户安全地转发网络流量。

7. 错误处理与日志记录

  • 错误捕获:处理在连接和数据传输过程中出现的各种错误,并记录相关信息以供调试。

8. 配置管理

  • 参数存储:支持用户保存连接配置,方便后续使用。

9. 脚本和自动化支持

  • API 接口:提供与其他工具或脚本的集成能力,便于实现自动化任务管理。

这种框架设计使得 plink.exe 能够灵活高效地执行 SSH 连接和命令执行,同时确保安全性和稳定性。


plink.exe 是一个命令行工具,主要用于通过 SSH 协议连接远程服务器。以下是一些具体应用场景:

1. 远程命令执行

  • 使用 plink.exe 可以直接在远程服务器上执行命令。例如: bashCopy Code
    plink.exe user@hostname "ls -la"
  • 这可以用于快速检查远程系统的状态或执行特定任务。

2. 脚本自动化

  • 可以将 plink.exe 集成到批处理脚本或其他自动化工具中,进行定期任务调度。例如,自动备份文件: bashCopy Code
    @echo off
    plink.exe user@hostname "tar -czf backup.tar.gz /path/to/files"

3. 端口转发

  • 支持本地和远程端口转发,使用户能够通过 SSH 隧道安全访问其他服务。例如,将本地端口 8080 转发到远程服务器的 80 端口: bashCopy Code
    plink.exe -L 8080:localhost:80 user@hostname

4. 安全文件传输

  • 虽然 plink.exe 本身不支持文件传输,但可以与其他工具(如 pscp.exe)结合使用,实现安全文件传输。

5. 网络诊断

  • 通过 SSH 连接到远程设备并执行网络诊断命令,如 pingtraceroute 等,帮助识别网络问题。

6. 管理多台服务器

  • 可以在多个服务器上同时执行相同的操作,简化管理工作。可以结合循环结构在脚本中实现。

7. 交互式会话

  • 在需要时,可以通过 -t 选项启用伪终端,进行交互式操作: bashCopy Code
    plink.exe -t user@hostname

这些应用场景展示了 plink.exe 在远程管理、脚本自动化和安全连接方面的强大功能,适用于系统管理员和开发人员。


plink.exe 在远程管理、脚本自动化和安全连接方面非常实用。以下是一些常见命令示例:

1. 远程管理

使用 plink.exe 连接到远程服务器并执行命令。

bashCopy Code
plink.exe -ssh username@hostname -pw password "ls -la"
  • -ssh:指定使用 SSH 协议。
  • username@hostname:替换为你的用户名和主机名(或 IP 地址)。
  • -pw password:提供密码(不建议在生产环境中使用)。
  • "ls -la":在远程服务器上执行的命令。

2. 脚本自动化

通过脚本批量执行命令,可以将其用于自动化任务。

bashCopy Code
plink.exe -ssh username@hostname -pw password -batch "mkdir new_directory; cd new_directory; touch file.txt"
  • -batch:禁止交互提示,适合脚本使用。
  • 可以在同一条命令中执行多个操作。

3. 安全连接

通过密钥认证进行安全连接。

bashCopy Code
plink.exe -ssh -i path_to_private_key.ppk username@hostname
  • -i path_to_private_key.ppk:指定私钥文件的位置。
  • 使用密钥进行身份验证比使用密码更安全。

4. 端口转发

设置本地端口转发,以便通过 SSH 隧道访问远程服务。

bashCopy Code
plink.exe -ssh -L local_port:remote_host:remote_port username@hostname
  • -L local_port:remote_host:remote_port:设置本地端口转发,将本地端口映射到远程主机的指定端口。

5. 上传文件

通过 SCP(安全复制)上传文件到远程服务器。

bashCopy Code
pscp.exe -i path_to_private_key.ppk local_file username@hostname:/remote_directory/
  • pscp.exe 是 PuTTY 套件中的 SCP 工具,类似于 plink.exe

6. 下载文件

通过 SCP 下载远程文件到本地。

bashCopy Code
pscp.exe -i path_to_private_key.ppk username@hostname:/remote_file local_directory/

这些示例展示了 plink.exe 在远程管理、脚本自动化和安全连接中的强大功能。根据实际需求,可以组合使用这些命令以实现更复杂的操作。


7. 执行多条命令

如果需要在一次连接中执行多条命令,可以用分号将它们串联。

bashCopy Code
plink.exe -ssh username@hostname -pw password "cd /var/www; git pull; systemctl restart apache2"
  • 上述命令将进入指定目录,拉取最新的代码,并重启 Apache 服务。

8. 使用配置文件

可以在 PuTTY 中设置会话配置,然后通过 plink.exe 直接调用。

bashCopy Code
plink.exe -load "MySavedSession"
  • 这里的 "MySavedSession" 是在 PuTTY 中保存的会话名称,避免每次都输入详细信息。

9. 环境变量转发

如果需要在远程会话中保留本地环境变量,可以使用 -X 选项(需确保 SSH 服务器支持)。

bashCopy Code
plink.exe -ssh -X username@hostname

10. 监控命令执行输出

将远程命令的输出记录到本地文件中。

bashCopy Code
plink.exe -ssh username@hostname -pw password "dmesg" > local_output.txt
  • 这将执行远程的 dmesg 命令,并将输出保存到本地文件 local_output.txt

11. 保持连接活跃

在某些情况下,SSH 连接可能会因长时间无活动而断开。可以使用 -o ServerAliveInterval 选项。

bashCopy Code
plink.exe -ssh -o ServerAliveInterval=60 username@hostname
  • 每 60 秒发送一个信号以保持连接活跃。

12. 使用代理

如果要通过 SOCKS 代理连接到远程服务器,可以使用以下命令:

bashCopy Code
plink.exe -D 1080 username@hostname
  • 这将在本地创建一个 SOCKS 代理,端口为 1080。

13. SSH 代理转发

如果需要在远程服务器上使用本地的 SSH 密钥,你可以启用 SSH 代理转发。

bashCopy Code
plink.exe -ssh -A username@hostname
  • 使用 -A 选项来启用代理转发。

14. 批处理文件

可以将多个 plink.exe 命令放入批处理文件中,方便批量执行。

Copy Code
@echo off
plink.exe -ssh username@hostname -pw password "command1"
plink.exe -ssh username@hostname -pw password "command2"
  • 将上述内容保存为 .bat 文件,双击运行即可。

15. 使用日志记录

记录所有的输出,便于后续审计和调试。

bashCopy Code
plink.exe -ssh username@hostname -pw password "uptime" -v > log.txt
  • -v 选项用于启用详细模式,有助于调试。

16. 文件传输

可以使用 pscp.exe(PuTTY 的文件复制工具)来传输文件。与 plink.exe 类似,命令格式如下:

bashCopy Code
pscp.exe -pw password localfile.txt username@hostname:/remote/path/
  • 这条命令将本地的 localfile.txt 文件复制到远程服务器的指定路径。

17. 使用密钥进行身份验证

如果不想使用密码,可以通过密钥文件进行身份验证。需要指定密钥文件的路径:

bashCopy Code
plink.exe -ssh -i C:\path\to\privatekey.ppk username@hostname

18. SSH 隧道

使用 plink.exe 创建 SSH 隧道,将本地端口转发到远程主机。

bashCopy Code
plink.exe -L 8080:localhost:80 username@hostname
  • 这将把本地的 8080 端口转发到远程主机的 80 端口,可以在本地访问远程服务。

19. 执行脚本

可以在远程服务器上执行一个脚本文件。

bashCopy Code
plink.exe -ssh username@hostname -pw password "bash ~/script.sh"
  • 这将执行位于用户主目录下的 script.sh 脚本。

20. 设置超时

为防止连接因长时间空闲而断开,可以设置超时参数:

bashCopy Code
plink.exe -ssh -o ConnectTimeout=10 username@hostname
  • 这里的 10 表示在 10 秒后超时。

21. 调试模式

使用 -v 选项启用调试模式,以便获取连接的详细信息。

bashCopy Code
plink.exe -ssh -v username@hostname

22. 连接多个服务器

可以在批处理脚本中连接多个服务器,自动化管理。

Copy Code
@echo off
for %%i in (server1 server2 server3) do (
    plink.exe -ssh username@%%i -pw password "uptime"
)
  • 以上代码将依次连接到 server1server2 和 server3,并执行 uptime 命令。

23. 指定字符集

在某些情况下,可能需要指定字符集以正确显示输出。

bashCopy Code
plink.exe -ssh username@hostname -pw password -m command.txt -C
  • -C 选项启用压缩,适用于带宽有限的情况。

24. 使用命令行参数

可以在命令行中传递自定义参数,允许灵活配置。

bashCopy Code
plink.exe -ssh username@hostname -pw password -m commands.txt -t
  • -t 选项强制分配伪终端,有助于执行某些需要交互的命令。

25. 定时任务

结合 Windows 的任务计划程序,定期执行某些命令或脚本。

bashCopy Code
schtasks /create /tn "MyTask" /tr "C:\path\to\your_script.bat" /sc daily /st 10:00
  • 该命令会每日 10:00 执行指定的批处理脚本。

26. 环境变量配置

你可以在 plink.exe 中设置环境变量,以便在远程会话中使用。

bashCopy Code
plink.exe -ssh username@hostname -pw password "export VAR_NAME=value; echo \$VAR_NAME"

27. 批量执行命令

如果需要在多个主机上执行相同的命令,可以将命令写入文件并使用循环。

Copy Code
@echo off
for %%i in (server1 server2 server3) do (
    plink.exe -ssh username@%%i -pw password < commands.txt
)

28. 输出重定向

可以将命令的输出重定向到本地文件中,方便后续查看。

bashCopy Code
plink.exe -ssh username@hostname -pw password "ls -l" > output.txt

29. 保持会话活动

为了避免超时断开,可以定期发送心跳信号。

bashCopy Code
while true; do echo ""; sleep 60; done | plink.exe -ssh username@hostname -pw password

30. 使用代理

如果需要通过 HTTP/SOCKS 代理连接,可以使用 -proxy 选项。

bashCopy Code
plink.exe -ssh -proxycmd "proxy_command" username@hostname

31. 使用交互模式

如果需要与远程主机进行交互,使用 -t 选项分配伪终端。

bashCopy Code
plink.exe -ssh -t username@hostname -pw password

32. 执行多条命令

可以通过分号将多条命令组合在一起执行。

bashCopy Code
plink.exe -ssh username@hostname -pw password "cd /var/www; ls -l; exit"

33. 连接到指定端口

若远程服务器的 SSH 服务不在默认端口(22),可以指定该端口。

bashCopy Code
plink.exe -ssh -P 2222 username@hostname -pw password

34. 检查连接状态

可以通过 plink.exe 检查服务器的连接状态。

bashCopy Code
plink.exe -ssh username@hostname -pw password "echo 'Connected'"

35. 使用不同的身份验证方法

可以尝试不同的身份验证方法,增加安全性。

bashCopy Code
plink.exe -ssh -i C:\path\to\key.ppk username@hostname

36. 使用 -m 参数从文件执行命令

将要执行的命令放入文件中,通过 -m 参数读取。

bashCopy Code
plink.exe -ssh username@hostname -pw password -m commands.txt

37. 设置日志记录

可以将会话的输出记录到日志文件,方便后续分析。

bashCopy Code
plink.exe -ssh username@hostname -pw password > session.log

38. 使用 timeout

如果不想等待命令执行完毕,可以设置超时。

bashCopy Code
plink.exe -ssh username@hostname -pw password "command" | timeout 10

39. 通过 SSH 密钥自动登录

将密钥添加到 SSH 代理,使得登录更为便捷。

bashCopy Code
pageant.exe C:\path\to\key.ppk
plink.exe -ssh username@hostname

40. 安装和使用 plink.exe

确保在计算机上正确安装 PuTTY,并将 plink.exe 添加到系统路径中,方便在任何目录下运行。


 

标签:Code,plink,bashCopy,hostname,exe,SSH
From: https://www.cnblogs.com/suv789/p/18435997

相关文章

  • pyinstaller打包exe,设置发布者,版权,产品名称等版本信息
    pyinstaller的安装和打exe相关,请看:python2打包exe以及一些运行出错的问题然后我们基本上使用pyinstaller-F-wtest.py就可以满足大部分的需求了,但是有的时候需要我们给exe添加版本信息,比如代码中如果有socket相关的,那么执行的时候电脑就会提示是否执行,并显示exe发布者等......
  • 将Python文件编译为exe可执行程序
      Python程序py格式文件的优点是可以跨平台,但运行必须有Python环境,没有Python环境无法运行py格式文件。有没有方法,用户不同安装Python就可直接运行开发的项目工程?答案是肯定的。这就涉及到需要将Python的.py格式文件编写的脚本编译成一个系统可执行文件,这可用PyInstaller来实......
  • 电脑ssh连接安卓手机(非root,不解锁)
    termux:F-Droid(魔法解决)  windows:1)首先打开cmd,输入ssh-keygen生成公钥,公钥存放地址会在生成过程中打印如C:\Users\Administrator/.ssh/2)上传id_rsa.pub到文叔叔,在浏览器下载框中获取下载链接  安卓:3)打开termux软件,输入指令whoami获取用户名。然后再输入ifconfig查看......
  • 关闭PerfWatson2.exe 体验改善计划
    关闭PerfWatson2.exe体验改善计划 VS2022:帮助——隐私声明——隐私设置 VS2022之前版本:帮助——隐私声明——隐私设置上开机,打开visualstudio,发现电脑慢得象蜗牛,还卡卡滴。任务管理器里一看,有一个不知道什么的PerfWatson2.exe在狂跑就下图中的这家伙度娘了一下,原......
  • c语言中fork,exec和system函数的理解
    fork用于创建子进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次,但返回两次。在父进程中,fork返回新创建子进程的进程ID。在子进程中,fork返回0。如果出现错误,fork返回一个负值。包含在<unistd.h>中,是Unix系统特有的文件(Macos并不太清楚),因此需要......
  • VS Code 的SSH连接不成功问题分析与解决
    问题描述:多次输入密码,一直连接不上解决方法;打开远程服务器中~/.vscode-server/bin/xxx文件夹,此时可以看到一个名为vscode-server.tar.gz,截图如下:上面的37开头的文件夹称为CommitId,现在利用CommitID下载远程连接需要的文件。使用这个链接:https://update.code.visualstudio.......
  • JSCH和SSHD实现密码+二次验证码登录服务器
    背景目前通过JSCH和SSHD登录服务器的方式基本都是密码或者密钥认证,但有些服务器在密码登录后会有个二次验证,一般是TOTP验证码。下面就是用xshell连接服务器后弹出的二次验证:JSCH和SSHD的官方文档没有详细的例子说明如何通过这个二次验证,研究文档的接口和参数后找到了结合密码和二次......
  • 树状数组(Binary Indexed Tree, BIT)
    树状数组(BinaryIndexedTree,BIT)树状数组(BinaryIndexedTree,BIT),也称为FenwickTree,是一种用于高效处理数组前缀和查询和单点更新的数据结构。它能够在(O(\logn))时间内完成单点更新和前缀和查询操作。基本概念前缀和:给定一个数组a,前缀和prefix_sum[i]表示a[0]+......
  • WPS演示 wpp.exe系统错误ntdll丢失怎么办?WPS演示wpp.exe ntdll.dll丢失快速恢复指南
    当WPS演示(wpp.exe)遇到系统错误提示“ntdll.dll丢失”时,这通常意味着Windows操作系统中的一个关键动态链接库文件(DLL)丢失或损坏,导致WPS演示无法正常运行。以下是一个快速恢复指南,帮助您解决这一问题:一、重新启动计算机首先,尝试最简单的解决方案——重新启动计算机。有时,简单......
  • 记删除AlibabaProtect.exe的经历
    作者:星空物语微信公众号:测试工程师小站本文记录了我与AlibabaProtect.exe斗争的经历。(删除AlibabaProtect.exe的方法在文末)初遇AlibabaProtect.exe下载安装阿里旺旺后,发现任务管理器中多了个进程AlibabaProtect.exe。在结束它后不久,发现它又出现在任务管理器中,于是对它产生了兴......