硬核观察 #762 Facebook 在数百万台服务器上使用 Kpatch 内核实时补丁
Facebook 在数百万台服务器上使用 Kpatch 内核实时补丁内核实时补丁允许内核在运行时安全地实施就地修补，而无需为了升级内核而进行冗长的开机自检（POST）和启动过程。Facebook 采用的是红帽的 Kpatch 方案，已经在其数百万台服务器上进行了部署。除了 Kpatch 方案之外，其它的内核实时补丁方案还有 SUSE 维护的 kGraft 和 Oracle 的 Ksplice 方案。Facebook 还分享了他们在应用过程中遇到的各种问题。消息来源：Phoronix老王点评：这是我听到的内核实时补丁最大规模的部署了，看起来已经可以在大规模生产环境使用了。Facebook 的经验可以学习一下。黑客使用木马版 PuTTY SSH 客户端植入后门安全公司报告，黑客组织在一次针对媒体公司的钓鱼攻击中使用了木马版 PuTTY SSH 客户端。PuTTY 是流行的开源 SSH 客户端。攻击者首先向目标发送邮件提供亚马逊的工作机会，后续通信中发送了包含了 IP 地址和登陆凭证以及木马版的 PuTTY 的文件。攻击者诱骗受害者打开文件运行木马版本以进行技能评估。但该版本含有恶意载荷，会部署和安装后门程序。消息来源：Mandiant老王点评：PuTTY 是一个小巧而流行的 SSH 客户端，但是一定要使用一个干净的。很多人在临时使用 SSH 时，都会去网上随便搜索一个 PuTTY 下载使用，这种往往是有木马的。LastPass 表示在驱逐前已被入侵内部系统 4 天今年 8 月，LastPass 被入侵，入侵者使用多因素身份验证成功通过了身份验证，从而访问了内部开发环境。但 LastPass 表示，“系统设计和控制阻止了威胁行为者访问任何客户数据或加密密码库”。这很可能是因为只有构建发布团队才能将代码从开发环境推送到产品环境，而它们是“物理分离，没有直接连接”的。消息来源：BleepingComputer老王点评：虽然入口被突破，但是内部损失有限，这说明良好的内部 IT 环境还是相当重要的。
使用开源的 PuTTY 工具，从 Windows 建立到 Linux 的 SSH 连接。在 Linux 世界中， 安全外壳 secure shell （SSH）协议是最为常用的、通过命令行控制远程计算机的方式。SSH 是真正的 Linux 原创，但是它在 Windows 世界中也越来越流行。甚至有了一份官方的 Windows 的 SSH 文档，那篇文档阐述了使用 OpenSSH 控制 Windows 的方法。这篇文章展示了如何使用了流行的开源工具 PuTTY，建立一个从 Windows 到 Fedora 33 Linux 系统的 SSH 连接。使用 SSH 的方法SSH 使用客户端-服务器模式，即 SSH 客户端会创建到 SSH 服务端的连接。SSH 服务器通常会作为 守护进程 Daemon 运行，所以它常被称为 SSHD。你很难找到一个不自带 SSH 守护进程的 Linux 发行版。在 Fedora 33 中，已安装了 SSH 守护进程，但是并未激活。你可以使用 SSH 控制几乎所有的 Linux 机器，无论它是作为虚拟机还是作为网络上的物理设备运行。一个常见的用例是 无头 headless 配置的嵌入式设备，如树莓派。SSH 也可以用做一个其它网络服务的隧道。因为 SSH 连接是加密的，所以你可以使用 SSH 作为一个任何默认不提供加密的协议的传输层。在这篇文章中，我将解释使用 SSH 的四个方式：1、如何在 Linux 端配置 SSH 守护进程；2、如何设置远程控制台连接；3、如何通过网络复制文件，4. 如何将 SSH 作为某些协议的隧道。1、配置 SSHD将 Linux 系统（文中是 Fedora 33）作为 SSH 服务器，允许 PuTTY SSH 客户端进行连接。首先，检查守护进程的 SSH 配置。配置文件放在 /etc/ssh/sshd_config，它包含了许多选项，通过取消掉相关行的注释就可以激活：# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Include /etc/ssh/sshd_config.d/*.conf #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: 没有取消任何注释的默认配置在这个示例中应该是可以工作的。要检查 SSH 守护进程是否已经运行，输入 systemctl status sshd：$ systemctl status sshd ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 577 (sshd) Tasks: 1 (limit: 26213) CGroup: /system.slice/sshd.service └─577 /usr/sbin/sshd -D -oCiphers=[aes256-gcm@openssh.com][5],chacha20-[...] 如果它处于 未激活 inactive 状态，使用 systemctl start sshd 命令启动它。2、设置远程控制台在 Windows 下 下载 PuTTY 安装程序，然后安装并打开它。你应看到一个像这样的窗口：在“ 主机名（或 IP 地址） Host Name (or IP address) ”输入框，键入你的 Linux 系统的连接信息。本文设置了一个 Fedora 33 虚拟机，它使用桥接网络适配器，使我可以由 IP 地址 192.168.1.60 连接这个系统。点击“ 打开 Open ”，应会如图示的打开一个窗口：这是 SSH 的安全措施之一，是为了防止 中间人攻击 man-in-the-middle attack 。消息中的指纹应该匹配 Linux 系统中放在 /etc/ssh/ssh_host_ed25519_key.pub 的密钥。PuTTY 将这个密钥以 MD5 哈希值 的方式打印出来。要检查它的真实性，切换到 Linux 系统并打开一个控制台，然后输入：ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub 输出应该和 PuTTY 展示的指纹一致：$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub 256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519) 点击“ 是 Yes ”以确认 PuTTY 的安全提示。主机系统的指纹现在存储在 PuTTY 的信任列表中，其位于 Windows 的注册表中的：HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys 输入正确的登录凭证，然后你应该进入控制台了，位置在你的用户主目录。3、通过网络复制文件除了远程控制台，你同样可以使用 PuTTY 通过 SSH 来传输文件。PuTTY 的安装目录在 C:\Program Files (x86)\PuTTY，在该目录下寻找 ppscp.exe。你既可以使用它从 Linux 系统复制文件，也可以复制文件到 Linux 系统。使用 Windows + R 然后输入 cmd 来打开命令提示符，从你的 Linux 用户主目录复制 MYFile.txt 到你的 Windows 主目录，输入：C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt . 要从 Windows 主目录复制文件到 Linux 用户主目录，输入：C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/ 就像你也许已经发现的那样，复制的命令通常构造为：pscp.exe <target> 4、隧道化一个协议假设你拥有一个 Linux 机器，为某些特别的应用运行一个基于 HTTP 的服务。你想从你的 Windows 机器通过互联网访问这个 HTTP 服务。而且，你不能将相关的 TCP 端口暴露在公网，因为：这个服务通过 HTTP 而非 HTTPS 运行根本没有用户管理和登录系统乍一看，建立这种架构不产生可怕的漏洞似乎是不可能的。但是 SSH 可简单的为这种情况建立一个安全的解决方案。我将用我的软件项目 Pythonic 来演示这个过程。在容器中运行。Pythonic 作为容器运行，开放两个 TCP 端口：TCP 端口 7000（主要编辑器）和 TCP 端口 8000（code-server 代码编辑器）。要在一个 Linux 机器上安装 Pythonic ，运行：podman pull pythonicautomation/pythonic podman run -d -p 7000:7000 -p 8000:8000 pythonic 转向你的 Windows 机器，打开 PuTTy，转到 “ 连接 Connection -> SSH -> 隧道 Tunnels ”。加入你要转发的两个 TCP 端口：源：7000 / 目标：localhost:7000源：8000 / 目标：localhost:8000然后返回 “ 会话 Session ” 部分，并像之前那样建立一个 SSH 链接。打开网页浏览器，然后转到 http://localhost:7000；你应该看见像这样的窗口：你成功的设置了端口转发！警告: 如果你选择在公网上暴露 TCP 端口 22 ，不要使用易于猜测的登录凭证。你将接受来自全世界的登录请求，它们使用常见的、标准的登录凭证以尝试登录你的 Linux 机器。相反，只允许已知的用户登录。这种登录限制可以通过 公钥加密 来实现，它使用一个密钥对，其中公钥存储在 SSH 主机上，而私钥保留在客户端。调试如果你难以连接你的 Linux 机器，你可以跟踪你的 SSH 守护进程的处理过程：journalctl -f -u sshd 这是一个普通的登录进程，但是其日志级别为 DEBUG，它看起来是这样的 :了解更多这篇文章几乎没有涉及到使用 SSH 的方法。如果你正在寻找一个特定用例的信息，你也许可以在互联网中找到无数的教程。我在工作中使用 PuTTY ，因为它易于设置，在两个操作系统间又具有良好的可操作性，使得它成为连接解决方案里的瑞士军刀。（文内图片来自：Stephan Avenwedde，CC BY-SA 4.0）via: https://opensource.com/article/21/6/ssh-windows作者：Stephan Avenwedde 选题：lujun9972 译者：yjacks 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
时隔两年，PuTTY 发布了一个新的安全修复版本
PuTTY 是 Windows 上使用最广泛的 SSH 客户端之一，它也有 Linux 版本。日前，得益于欧盟资助的 HackerOne 平台，PuTTY 发布了 0.71 版本，主要是修复了大量的安全缺陷。这个版本距其上个版本 0.70 的发布已近两年。PuTTY 是一个自由开源且支持包括 SSH、Telnet 和 Rlogin 在内的多种协议的 GUI 客户端。根据其变更日志，这个新版本的主要变更有：由欧盟资助的漏洞赏金计划发现的漏洞的安全修复：在 RSA 密钥交换过程中可由远程触发内容覆写，它发生在主机密钥校验之前循环利用用于加密算法的随机数的潜在风险在 Windows 上，通过与可执行文件位于同一目录中的恶意帮助文件进行劫持在Unix上，任何类型的服务器到客户端转发过程中的可远程触发的缓冲区溢出可以通过写入终端触发的多个拒绝服务攻击其它安全增强：重写加密代码以消除缓存和定时侧信道用户界面更改以防止来自恶意服务器的虚假身份验证提示首次提供了基于 ARM 的 Windows 版的预构建二进制最常见的加密算法的硬件加速版本：AES、SHA-256、SHA-1GTK PuTTY 现在支持非 X11 显示（如 Wayland）和高分辨率配置现在，只要打开PuTTY窗口，就可以使用预先输入：在身份验证完成之前键入的键击将被缓冲而不是被删除支持 GSSAPI 密钥交换：这是旧版 GSSAPI 身份验证系统的替代方案，可以在长时间会话期间更新转发的 Kerberos 凭据用于剪贴板处理的更多用户界面选择新的终端功能：支持 REP 转义序列（修复 ncurses 屏幕重绘失败）、真彩色和 SGR 2 暗淡文本按 Ctrl + Shift + PgUp 或 Ctrl + Shift + PgDn 现在可以直接到达终端回滚的顶部或底部如果要下载使用 PuTTY，请从其官网下载，以避免使用了被恶意篡改的版本：Windows 32 位：putty-0.71-installer.msiWindows 64 位：putty-64bit-0.71-installer.msiUnix 源代码：putty-0.71.tar.gz此外，也可以单独下载 putty 和 pscp 等的二进制执行文件：putty.exe（32 位、64 位）pscp.exe（32 位、64 位）
了解一下这三个用于 Linux 上的 SSH 图形界面工具。在你担任 Linux 管理员的职业生涯中，你会使用 Secure Shell（SSH）远程连接到 Linux 服务器或桌面。可能你曾经在某些情况下，会同时 SSH 连接到多个 Linux 服务器。实际上，SSH 可能是 Linux 工具箱中最常用的工具之一。因此，你应该尽可能提高体验效率。对于许多管理员来说，没有什么比命令行更有效了。但是，有些用户更喜欢使用 GUI 工具，尤其是在从台式机连接到远程并在服务器上工作时。如果你碰巧喜欢好的图形界面工具，你肯定很乐于了解一些 Linux 上优秀的 SSH 图形界面工具。让我们来看看这三个工具，看看它们中的一个（或多个）是否完全符合你的需求。我将在 Elementary OS 上演示这些工具，但它们都可用于大多数主要发行版。PuTTY已经有一些经验的人都知道 PuTTY。实际上，从 Windows 环境通过 SSH 连接到 Linux 服务器时，PuTTY 是事实上的标准工具。但 PuTTY 不仅适用于 Windows。事实上，通过标准软件库，PuTTY 也可以安装在 Linux 上。 PuTTY 的功能列表包括：保存会话。通过 IP 或主机名连接。使用替代的 SSH 端口。定义连接类型。日志。设置键盘、响铃、外观、连接等等。配置本地和远程隧道。支持代理。支持 X11 隧道。PuTTY 图形工具主要是一种保存 SSH 会话的方法，因此可以更轻松地管理所有需要不断远程进出的各种 Linux 服务器和桌面。一旦连接成功，PuTTY 就会建立一个到 Linux 服务器的连接窗口，你将可以在其中工作。此时，你可能会有疑问，为什么不在终端窗口工作呢？对于一些人来说，保存会话的便利确实使 PuTTY 值得使用。在 Linux 上安装 PuTTY 很简单。例如，你可以在基于 Debian 的发行版上运行命令：sudo apt-get install -y putty安装后，你可以从桌面菜单运行 PuTTY 图形工具或运行命令 putty。在 PuTTY “Configuration” 窗口（图 1）中，在 “HostName (or IP address) ” 部分键入主机名或 IP 地址，配置 “Port”（如果不是默认值 22），从 “Connection type”中选择 SSH，然后单击“Open”。图 1：PuTTY 连接配置窗口建立连接后，系统将提示你输入远程服务器上的用户凭据（图2）。图 2：使用 PuTTY 登录到远程服务器要保存会话（以便你不必始终键入远程服务器信息），请填写主机名（或 IP 地址）、配置端口和连接类型，然后（在单击 “Open” 之前），在 “Saved Sessions” 部分的顶部文本区域中键入名称，然后单击 “Save”。这将保存会话的配置。若要连接到已保存的会话，请从 “Saved Sessions” 窗口中选择它，单击 “Load”，然后单击 “Open”。系统会提示你输入远程服务器上的远程凭据。EasySSH虽然 EasySSH 没有提供 PuTTY 中的那么多的配置选项，但它（顾名思义）非常容易使用。 EasySSH 的最佳功能之一是它提供了一个标签式界面，因此你可以打开多个 SSH 连接并在它们之间快速切换。EasySSH 的其他功能包括：分组（出于更好的体验效率，可以对标签进行分组）。保存用户名、密码。外观选项。支持本地和远程隧道。在 Linux 桌面上安装 EasySSH 很简单，因为可以通过 Flatpak 安装应用程序（这意味着你必须在系统上安装 Flatpak）。安装 Flatpak 后，使用以下命令添加 EasySSH：sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo sudo flatpak install flathub com.github.muriloventuroso.easyssh用如下命令运行 EasySSH：flatpak run com.github.muriloventuroso.easyssh将会打开 EasySSH 应用程序，你可以单击左上角的 “+” 按钮。 在结果窗口（图 3）中，根据需要配置 SSH 连接。图 3：在 EasySSH 中添加连接很简单添加连接后，它将显示在主窗口的左侧导航中（图 4）。图 4：EasySSH 主窗口要在 EasySSH 连接到远程服务器，请从左侧导航栏中选择它，然后单击 “Connect” 按钮（图 5）。图 5：用 EasySSH 连接到远程服务器对于 EasySSH 的一个警告是你必须将用户名和密码保存在连接配置中（否则连接将失败）。这意味着任何有权访问运行 EasySSH 的桌面的人都可以在不知道密码的情况下远程访问你的服务器。因此，你必须始终记住在你离开时锁定桌面屏幕（并确保使用强密码）。否则服务器容易受到意外登录的影响。Terminator（LCTT 译注：这个选择不符合本文主题，本节删节）termius（LCTT 译注：本节是根据网友推荐补充的）termius 是一个商业版的 SSH、Telnet 和 Mosh 客户端，不是开源软件。支持包括 Linux、Windows、Mac、iOS 和安卓在内的各种操作系统。对于单一设备是免费的，支持多设备的白金账号需要按月付费。很少（但值得）的选择Linux 上没有很多可用的 SSH 图形界面工具。为什么？因为大多数管理员更喜欢简单地打开终端窗口并使用标准命令行工具来远程访问其服务器。但是，如果你需要图形界面工具，则有两个可靠选项，可以更轻松地登录多台计算机。虽然对于那些寻找 SSH 图形界面工具的人来说只有不多的几个选择，但那些可用的工具当然值得你花时间。尝试其中一个，亲眼看看。via: https://www.linux.com/blog/learn/intro-to-linux/2018/11/three-ssh-guis-linux作者：Jack Wallen 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
之前我们发过一篇《如何在 Ubuntu 和其他 Linux 发行版上安装 Putty》，有一些人对此不以为然，说实话，我原本对在 Linux 上安装 PuTTY 也持可有可无的态度。前两天，我们又发了一篇《在 Linux 中安装并使用 PuTTY》，比上一篇更详细的介绍了在 Linux 上安装使用 PuTTY 的经验。不出所料，又引来了一些人评论，我本来对此也是哈哈一笑，各人都有各人的看法嘛。但是，看着看着，我就有点看不下去了。这些人在说什么呢？他们是这样说的：为什么不直接用命令行呢？多此一举PuTTY 能做的 Linux 终端都能做，感觉没啥用X 疼操作有个疑问：Linux 为什么要装 PuTTY？典型的南辕北辙，画蛇添足，无聊的蛋疼是 OpenSSH 不好用了还是 OpenSSH 不够骚了存粹搞着玩？？？？？？？？我 tm 好想 at 疑惑大赏更多我就不一一列出来了，以上也不指名道姓了，上述言论归该发言者所有。在一开始，我就轻轻的回复一句：“为什么不能在 Linux 桌面里面有个 ssh 连接管理器呢？”也有同学说“经常用 Linux 桌面访问多机 SSH 的朋友知道这篇文章的好。”、“几乎是最简洁轻便的 ssh 工具了（其实还支持 telnet 和串口等）”，但是这些很快被淹没在种种无脑的评论当中。我低估了这些应该是懂一些 Linux 系统管理的人傲慢，也没想到会有这么多的偏见！是的，我们以前只在 Windows 上见过 PuTTY，而且，我还曾经在偶尔需要 SSH 连接时临时下载使用过 PuTTY，虽然不如 SecureCRT，但是也够用了——谁让之前 Windows 没有内置的 ssh 命令行呢。是的，我对 PuTTY 还有过一个不好的偏见，因为之前有些坏人给 PuTTY 加壳，放了木马，一些警惕心不够的人因此而中招——虽然这事完全不赖 PuTTY。难道系统管理员们都是“万般皆下品惟有终端高”吗？作为技术人员，在一个日新月异的时代，无论是作为继承了古典“黑客”传统的 IT 人，还是处于一个一日不学即落后的行业，为什么要故步自封？为什么不能将眼睛从黑窗口挪开看一眼呢？那么，我来说说，使用 PuTTY 有什么好处！如果你要管理若干服务器呢，难道用 txt 记录 IP 吗？如果想为重要的生产服务器设置不同的终端样式提醒你千万小心呢？如果你要同时管理 Solaris 和 Linux 呢，需要调整键盘映射呢？要知道 Sun Solaris 的删除键和 PC 键盘不同。如果想为不同用户采用不同的验证方案呢？比如 root 采用密钥验证，而普通用户采用 otp 加密码验证。如果你不想每次敲长长的命令行，指定端口号、指定用户名、指定另外的密钥位置呢？……这些，够不够你放下傲慢来看一看呢？说到底，一个不能公正地看待包括 Windows（及 WSL）、Unix、 Linux 等不同系统的优缺点的人，不能谦虚地保持学习和理性的思维的人，你觉得你适合做技术工作么？戒骄戒躁，放下傲慢。
PuTTY 是一个自由开源且支持包括 SSH、Telnet 和 Rlogin 在内的多种协议的 GUI 客户端。一般来说，Windows 管理员们会把 PuTTY 当成 SSH 或 Telnet 客户端来在本地 Windows 系统和远程 Linux 服务器之间建立连接。不过，PuTTY 可不是 Windows 的独占软件。它在 Linux 用户之中也是很流行的。本篇文章将会告诉你如何在 Linux 中安装并使用 PuTTY。在 Linux 中安装 PuTTYPuTTY 已经包含在了许多 Linux 发行版的官方源中。举个例子，在 Arch Linux 中，我们可以通过这个命令安装 PuTTY：$ sudo pacman -S putty在 Debian、Ubuntu 或是 Linux Mint 中安装它：$ sudo apt install putty使用 PuTTY 访问远程 Linux 服务器在安装完 PuTTY 之后，你可以在菜单或启动器中打开它。如果你想用终端打开它，也是可以的：$ puttyPuTTY 的默认界面长这个样子：如你所见，许多选项都配上了说明。在左侧面板中，你可以配置许多项目，比如：修改 PuTTY 登录会话选项；修改终端模拟器控制选项，控制各个按键的功能；控制终端响铃的声音；启用/禁用终端的高级功能；设定 PuTTY 窗口大小；控制命令回滚长度（默认是 2000 行）；修改 PuTTY 窗口或光标的外观；调整窗口边缘；调整字体；保存登录信息；设置代理；修改各协议的控制选项；以及更多。所有选项基本都有注释，相信你理解起来不难。使用 PuTTY 访问远程 Linux 服务器请在左侧面板点击 “Session” 选项卡，输入远程主机名（或 IP 地址）。然后，请选择连接类型（比如 Telnet、Rlogin 以及 SSH 等）。根据你选择的连接类型，PuTTY 会自动选择对应连接类型的默认端口号（比如 SSH 是 22、Telnet 是 23），如果你修改了默认端口号，别忘了手动把它输入到 “Port” 里。在这里，我用 SSH 连接到远程主机。在输入所有信息后，请点击 “Open”。如果这是你首次连接到这个远程主机，PuTTY 会显示一个安全警告，问你是否信任你连接到的远程主机。点击 “Accept” 即可将远程主机的密钥加入 PuTTY 的缓存当中：接下来，输入远程主机的用户名和密码。然后你就成功地连接上远程主机啦。使用密钥验证访问远程主机一些 Linux 管理员可能在服务器上配置了密钥认证。举个例子，在用 PuTTY 访问 AMS 实例的时候，你需要指定密钥文件的位置。PuTTY 可以使用它自己的格式（.ppk 文件）来进行公钥验证。首先输入主机名或 IP。之后，在 “Category” 选项卡中，展开 “Connection”，再展开 “SSH”，然后选择 “Auth”，之后便可选择 .ppk 密钥文件了。点击 “Accept” 来关闭安全提示。然后，输入远程主机的密码（如果密钥被密码保护）来建立连接。保存 PuTTY 会话有些时候，你可能需要多次连接到同一个远程主机，你可以保存这些会话并在之后不输入信息访问他们。请输入主机名（或 IP 地址），并提供一个会话名称，然后点击 “Save”。如果你有密钥文件，请确保你在点击 “Save” 按钮之前指定它们。现在，你可以通过选择 “Saved sessions”，然后点击 “Load”，再点击 “Open” 来启动连接。使用 PuTTY 安全复制客户端（pscp）来将文件传输到远程主机中通常来说，Linux 用户和管理员会使用 scp 这个命令行工具来从本地往远程主机传输文件。不过 PuTTY 给我们提供了一个叫做 PuTTY 安全复制客户端 PuTTY Secure Copy Client （简写为 pscp）的工具来干这个事情。如果你的本地主机运行的是 Windows，你可能需要这个工具。PSCP 在 Windows 和 Linux 下都是可用的。使用这个命令来将 file.txt 从本地的 Arch Linux 拷贝到远程的 Ubuntu 上：pscp -i test.ppk file.txt sk@192.168.225.22:/home/sk/让我们来分析这个命令：-i test.ppk：访问远程主机所用的密钥文件；file.txt：要拷贝到远程主机的文件；sk@192.168.225.22：远程主机的用户名与 IP；/home/sk/：目标路径。要拷贝一个目录，请使用 -r（ 递归 Recursive ）参数： pscp -i test.ppk -r dir/ sk@192.168.225.22:/home/sk/要使用 pscp 传输文件，请执行以下命令：pscp -i test.ppk c:\documents\file.txt.txt sk@192.168.225.22:/home/sk/你现在应该了解了 PuTTY 是什么，知道了如何安装它和如何使用它。同时，你也学习到了如何使用 pscp 程序在本地和远程主机上传输文件。以上便是所有了，希望这篇文章对你有帮助。干杯！via: https://www.ostechnix.com/how-to-install-and-use-putty-on-linux/作者：SK 选题：lujun9972 译者：zhs852 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如果我没弄错，Putty 可能是 Windows 最受欢迎的 SSH 客户端。在 IT 公司中，开发环境通常在远程 Linux 系统上，而开发人员则使用 Windows 作为本地系统。Putty 用于从 Windows 机器连接到远程 Linux 系统。Putty 不是限定于 Windows 的。你也可以在 Linux 和 macOS 上使用此开源软件。但是等等！当你已经拥有“真正的” Linux 终端时，为什么要在 Linux 上使用单独的 SSH 客户端？这有几个想在 Linux 上使用 Putty 的原因。你在 Windows 上使用 Putty 已经很久了，你觉得它更舒服。你发现很难手动编辑 SSH 配置文件以保存各种 SSH 会话。你更喜欢 Putty 图形化保存 SSH 连接的方式。你想通过连接到原始套接字和串口进行调试。无论是什么原因，如果你想在 Ubuntu 或任何其他 Linux 上使用 Putty，你当然可以这样做。让我告诉你如何做到。在 Ubuntu Linux 上安装 Putty对于 Ubuntu 用户来说，好消息是 Putty 可以在 Ubuntu 的 universe 仓库中找到。要在 Ubuntu上安装 Putty，首先应确保已启用 universe 仓库。sudo add-apt-repository universe启用 universe 仓库后，应使用以下命令更新 Ubuntu：sudo apt update之后，你可以使用以下命令安装 Putty：sudo apt install putty安装后，你可以在菜单中找到它来启动 Putty。正如你在下面的截图中看到的，Putty 的 Linux 版本看起来与 Windows 版本相同。这让你松了一口气, 因为你不必再尝试新的设置。当你输入远程系统的主机名或 IP 地址并连接到它时，Putty 将使用你已保存在主目录中的 SSH 密钥。在其他 Linux 发行版上安装 PuttyPutty 可用于 Debian，所以你只需要使用 apt-get 或 aptitude 来安装它。sudo apt-get install puttyPutty 也适用于 Fedora/Red Hat，并可以使用默认的包管理器进行安装。sudo dnf install putty你还可以在基于 Arch Linux 的发行版中轻松安装 Putty。sudo pacman -S putty请记住，Putty 是一款开源软件。如果你真的想要，你也可以通过源代码安装它。你可以从下面的链接获取 Putty 的源代码。下载 Putty 源代码我一直喜欢原生 Linux 终端而不是像 Putty 这样的 SSH 客户端。我觉得 GNOME 终端或 Terminator 更有家的感觉。但是，在 Linux 中使用默认终端或 Putty 是个人选择。你在 Linux 上管理多个 SSH 连接时使用了什么？via: https://itsfoss.com/putty-linux/作者：Abhishek Prakash 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如果你的操作系统是 Windows，而你想要连接 Linux 服务器相互传送文件，那么你需要一个简称 SSH 的 Secure Shell 软件。实际上，SSH 是一个网络协议，它允许你通过网络连接到 Linux 和 Unix 服务器。SSH 使用公钥加密来认证远程的计算机。你可以有多种途径使用 SSH，无论是自动连接，还是使用密码认证登录。本篇文章介绍了几种可以连接 Linux 服务器 SSH 客户端。让我们开始吧。PuttyPutty 是最有名的 SSH 和 telnet 客户端，最初由 Simon Tatham 为 Windows 平台开发。Putty 是一款开源软件，有可用的源代码，和一群志愿者的开发和支持。Putty 非常易于安装和使用，通常大部分的配置选项你都不需要修改。你只需要输入少量基本的参数，就可以开始很简单地建立连接会话。点此下载 Putty。Bitvise SSH ClientBitvise SSH 是一款支持 SSH 和 SFTP 的 Windows 客户端。由 Bitvise 开发和提供专业支持。这款 SSH 客户端性能强悍，易于安装、便于使用。Bitvise SSH 客户端拥有功能丰富的图形界面，通过一个有自动重连功能的内置代理进行动态端口转发。Bitvise SSH 客户端对个人用户使用是免费的，同时对于在组织内部的个人商业使用也一样。你可以在这里下载 Bitvise SSH 客户端。MobaXtermMobaXterm 是你的远程计算的终极工具箱。在一个 Windows 应用里，它为程序员、网管、IT 管理员及其它用户提供了精心裁剪的一揽子功能，让他们的远程操作变得简约时尚。MobaXterm 提供了所有重要的远程网络工具 （如SSH、 X11、 RDP、 VNC、 FTP、 MOSH 等等），以及 Windows 桌面上的 Unix 命令（bash、 ls、 cat、sed、 grep、 awk、 rsync等等），而这些都是由一个开箱即用的单一的便携程序所提供。MobaXterm 对个人使用免费，你可以在这里下载 MobaXterm。DameWare SSH我认为 DameWare SSH 是最好的免费SSH客户端。（LCTT 译注：似乎 DameWare 已经取消了该软件的下载。）这个免费工具是一个终端模拟器，可以让你从一个易用的控制台建立多个 telnet 和 SSH 连接。用一个带标签的控制台界面管理多个会话将常用的会话保存在 Windows 文件系统中使用多套保存的证书来轻松登录不同的设备使用 telnet、SSH1 和 SSH2 协议连接计算机和设备SmarTTY SmarTTY 是一款免费的多标签 SSH 客户端，支持使用 SCP 命令随时复制文件和目录。大多数 SSH 服务器每个连接支持最多10个子会话．SmarTTY 在这方面做得很好：没有烦人的多个窗口，不需要重新登录，仅仅打开一个新的标签页就可以开始了！CygwinCygwin 是一款 GNU 和开源工具的大杂烩，提供的功能近似于一个 Windows 平台下的 Linux。Cygwin 包括了一个称为模拟库的 Unix 系统：cygwin.dll，集成了大量的 GNU 和其它的免费软件，以大量的可选包方式组织而成。在这些安装包中，有高质量的编译器和其他软件开发工具、一个X11服务器、一套完整的X11开发套件、GNU emacs 编辑器、Tex 和 LaTeX、openSSH（客户端和服务器），除此之外还有很多，包括在微软 Windows 下需要编译和使用 PhysioToolkit 软件的每一样东西。读完我们的文章后，不知你中意哪一款 SSH 客户端？你可以留下你的评论，描述你喜欢的系统和选择的原因。当然，如果有另外的 SSH 客户端没有被本文列举出来，你可以帮助我们补充。via: http://www.unixmen.com/list-free-windows-ssh-client-tools-connect-linux-server/作者：anismaj 译者：wi-cuckoo 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出