世界 安全远程访问和任务自动化 服务器存储对于系统管理员、开发人员和技术爱好者来说变得越来越重要。在这方面,尤其是在 Windows 环境中,一个强大的盟友是 砰砰这个小巧但功能强大的实用程序可以轻松地通过 SSH 连接远程机器并在其上执行命令,并为那些希望将自动化流程和脚本集成到其工作流程中的人提供了巨大的可能性。
要是你想知道 如何连接服务器 Linux 从 Windows 无需借助图形界面,或作为 自动执行通常需要人工干预的任务, Plink 是你的工具在本文中,我们不仅详细解释了 Plink 是什么,还解释了如何从头开始使用它、它的常见和高级应用程序,以及在 Windows 上充分利用它的一些技巧。
Plink 是什么以及它有什么用途?
Plink 的缩写 PuTTY 链接是 PuTTY 套件附带的命令行程序。主要针对 Windows 系统设计, Plink 允许您与远程服务器建立安全连接 使用如下协议 SSH、Telnet 或 rlogin。它主要与 SSH 一起使用来访问和控制 Linux 服务器或 Unix的 安全地从 Windows 命令控制台。
Plink 的一大亮点是 专注于自动化与PuTTY(图形版本)不同,Plink旨在在不需要直接用户交互的脚本或进程中运行。这使得它成为 将远程操作集成到计划任务、自动部署、CI/CD 管道中 甚至用于大规模服务器管理。
Plink 是免费且开源的,这使得它在个人项目和专业环境中都得到了广泛的应用。它与 Windows 上的批处理脚本兼容,这使得它有别于其他 SSH 客户端,并且能够与 PuTTY 会话和配置 大大简化了对已配置服务器的访问。
在 Windows 上使用 Plink 的优势
使用 Plink 的主要原因是 行政和运营任务的自动化 在 Windows 系统和远程服务器之间。一些最显著的优势包括:
- 可移植可执行文件: 你可以采取 砰砰 一 USB 或者轻松共享,因为你只需要文件 plink.exe.
- 与脚本集成: 它非常适合从批处理脚本启动命令, PowerShell的 甚至更先进的工具,如 Jenkins。
- PuTTY 配置支持: 允许您重复使用配置文件、SSH 密钥和预定义主机。
- 端口转发和 SSH 隧道: 促进远程和本地计算机之间的安全连接和加密数据传输。
- 高级身份验证管理: 支持密码、公钥、Pageant(PuTTY 的身份验证代理)以及与自动化系统的集成。
入门:安装和配置
在我们开始使用 Plink 之前, 你需要下载并安装它。以下是建议的步骤:
- 从官方网站下载PuTTY或其各个实用程序: https://www.putty.org/.在那里你可以找到 plink.exe 以及其他相关程序(例如 pscp.exe 用于文件传输)。
- 将 plink.exe 复制到可访问的位置如 C:\ WINDOWS \ System32 或 Windows PATH 中包含的任何文件夹。
- (可选) 将plink.exe所在文件夹添加到环境变量中,以便能够从任何 终端 命令。
如果您正在使用 Ubuntu 或任何 Linux 发行版,并且希望拥有相同的跨平台脚本实用程序,请查找软件包 腻子工具 并使用安装 sudo apt-get install putty-tools
.
如何使用 Plink:基本语法和命令
Plink 最简单的用法是 连接到远程服务器并执行命令 就像使用传统的 SSH 终端一样。 一般语法 通常:
plink -ssh 用户@主机
这将打开一个 交互式 SSH 会话如果您的服务器需要密码,它会通过控制台提示您输入密码。您可以使用以下选项指定 SSH 端口(如果不是标准端口 (22)) -P,并将您的私钥传递给 -i:
plink -ssh -i C:\path\to\key.ppk 用户@主机 -P 2222
至 直接运行非交互式命令 (适用于脚本或自动任务),只需在连接后添加命令:
plink -ssh 用户@主机命令
例如,列出远程服务器上目录中的文件:
plink -ssh 用户@主机 ls -l
-batch 参数 允许您以静默模式运行,抑制交互式提示(在自动化过程中非常有用):
plink -batch -ssh 用户@主机“ls -l”
身份验证和公钥:安全提示
的关键方面之一 SSH 连接的安全性 是 公钥认证Plink 支持密钥(.ppk 文件)和密码验证。强烈建议使用 受密码保护的密钥 添加额外的安全层。
为了提高脚本和连接的稳健性:
- 将私钥存储在安全的地方 并限制只有必要的用户才能访问。
- 使用 Pageant 如果您想管理受密码保护的密钥,而不必每次登录时手动输入密码。
- 在自动化环境中, 使用 -batch 禁用交互 以避免服务器请求未注册的密钥时发生阻塞。
在 Plink 中管理指纹(主机密钥)
首次连接到服务器时,Plink 会警告 主机密钥 (服务器指纹)未在客户端注册。这是一种信任机制,旨在确保您确实连接到目标服务器。在PuTTY中,此主机密钥缓存在Windows注册表中:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
如果主机密钥尚未保存,Plink 会在命令行中要求确认是否保存。您可以手动接受(输入“y”),或者 使用“技巧”在脚本中自动接受:
echo y | plink 用户@主机
这会自动发送“y”响应。然而,有些情况下,这种方法不起作用,尤其是当你强制 SSH 协议版本 2 或者您使用高级隧道。在这些情况下,Plink 可能会在不要求确认的情况下中止连接,您必须使用 -主机密钥:
plink.exe -ssh -2 -batch -L 8080:remote_host:80 -P 22 -pw 密码 user@host -hostkey 指纹
指纹在首次连接或注册时获取。这确保了有效的连接和 自动接受主机密钥 在复杂的脚本或 CI/CD 管道中。
在 Windows 中使用 Plink 的实际示例
我们来看一些 常见和高级 Plink 用例 在 Windows 上,这证明了它的多功能性和强大功能。
1.远程命令执行
例如,通过密码验证来远程启动文件列表:
plink.exe -pw 你的密码 你的用户@远程主机 ls -l
2.执行远程脚本
您可以准备一个命令文件(例如, 备份.SH)并像这样运行它:
plink.exe -pw 你的密码 -m BACKUP.sh 你的用户@远程主机
对于备份、部署、安装或任何重复过程非常有用。
3. 使用批处理脚本和 Python 实现自动化
许多用户创建 批处理脚本或 Python 使用 Plink 和其他实用程序,例如 pscp.exe (来自PuTTY本身)实现自动化 文件下载和上传,执行多个远程命令,与 数据库等等。
例如,Python 库可以包装 Plink 和 pscp 以从 Windows 或 Linux 启动自动任务,检测操作系统并使用适当的命令。
4.文件传输:plink和pscp
传输值得信赖的文件 pscp.exe,另一个 PuTTY 工具,但在许多工作流程中,两者往往齐头并进:
pscp.exe -pw 你的密码 local_file.txt 你的用户@远程主机:/远程路径/
或者从远程下载文件到本地机器:
pscp.exe -pw 你的密码 你的用户@远程主机:/remote_path/file.txt ./downloaded_file.txt
使用 Plink 进行端口转发和 SSH 隧道
Plink 最先进、最强大的功能之一是 SSH 隧道创建和端口转发 (端口转发)。这允许网络流量在机器和网络之间安全且加密地重定向。
- 本地端口转发: 通过 SSH 将本地计算机上的端口重定向到远程计算机上的端口。
plink.exe -L 本地端口:远程主机:远程端口 -P 22 -pw 你的密码 你的用户@远程主机
例如,您可以使用它来公开数据库、访问内部网站,甚至通过安全隧道打开 RDP 会话。
- 动态隧道(SOCKS): Plink 可以创建 SOCKS 代理(在渗透测试或需要浏览受感染的计算机时非常有用):
plink.exe -D 9050 -P 22 -pw 你的密码 你的用户@远程主机
然后,您可以配置您的应用程序以使用 127.0.0.1:9050 作为 SOCKS 代理,流量将通过 SSH 加密传输到远程主机。
使用 Plink 进行高级集成和自动化
在专业环境中, Plink 可以集成到自动化管道中 像詹金斯一样,允许 远程调试、部署和监控 使用代码的服务器。Jenkinsfile 中的基本示例:
管道 { 代理任何阶段 { 阶段('部署'){ 步骤 { bat'Plink -ssh user@remote_host“deploy.sh”' } } } }
您还可以将其与 Proxifier 等工具结合使用,以创建高级网络规则,并通过 Plink 发起的 SSH 隧道访问内部服务或端口。此技术在渗透测试、高级管理以及在 Windows 环境中设置安全测试实验室中非常常见。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。