添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
老实的刺猬  ·  OpenShift 4 - Fedora ...·  3 周前    · 
任性的筷子  ·  Java中List ...·  1 年前    · 
腼腆的伤疤  ·  jQuery简单操作④ - 掘金·  1 年前    · 
  • 如何从基于 Windows 的计算机连接到 Linux 虚拟机。

  • 如何在 Linux 中工作时管理基本任务,例如创建和删除文件和文件夹、以特权用户身份运行命令,以及使用包管理器安装应用程序。

    为了确保本指南中的所有实验室都按预期工作,建议使用 Ubuntu 18.04 LTS 分发版,因为这是用于创建实验室的分布。

    此部分 (1.1) 包含以下步骤:

  • 在 Windows Azure 中创建 Linux 虚拟机
  • 连接到 Linux 虚拟机
    • 使用 PowerShell SSH 客户端
    • 使用 PuTTY
    • 如果熟悉 Linux,可能需要完全跳过此部分,直接转到 第 1.2 部分 - Linux 特殊目录、提升的用户和包管理器

      在 Windows Azure 中创建 Linux 虚拟机

      你的第一个决定是要使用的 Linux 分布。 Linux 操作系统有不同的风格和分布,通常称为“发行版”。 根据此 Linux 文档项目文章,不同分发版之间有许多相似之处。 本系列中使用的命令对于每个 Linux 发行版几乎相同,尽管安装包管理器可能有所不同。 但是,无论使用的发行版如何,一般说明都是相同的。

      Azure 中的 Linux 虚拟机中 所述,Microsoft Azure 支持多个由合作伙伴提供和维护的常用 Linux 发行版。 可以在Azure 市场中找到 Red Hat Enterprise、CentOS、SUSE Linux Enterprise、Debian、Ubuntu、CoreOS、RancherOS、FreeBSD 等发行版。

      在 Azure 中创建 Linux 虚拟机的说明在 快速入门中明确说明:在 Azure 门户 中创建 Linux 虚拟机

      本文还提供了连接到虚拟机和安装 Nginx Web 服务器的说明。 选择遵循这些说明并安装 Nginx。 但是,你不必仅仅因为下一部分涵盖了 Nginx 安装和配置而做出决定。

      本教程不会重复这些步骤,因为说明足够清晰。 但是,请务必突出显示有关如何创建虚拟机的一些要点。

      创建虚拟机时,可以从以下类型的身份验证中进行选择:

    • 使用密码进行连接
    • 使用 SSH 公钥进行连接
    • 尽管在此培训的上下文中可以接受使用密码身份验证,但我们建议使用 SSH 公钥 选项,因为它提供更好的安全性。 此外,在连接到 Linux 虚拟机时,本指南默认使用此选项。

      Azure 会自动为你生成 SSH 密钥对,并允许将其保存到磁盘,以便稍后连接到 Linux 虚拟机时可以使用它。 此操作简化了连接过程。

      创建管理员帐户时,选择 SSH 公钥 生成新的密钥对 选项。

      对于 “用户名” 字段,可以在创建虚拟机时提供的名称中选择所需的名称。

      入站端口规则

      若要启用与新创建的虚拟机的连接,请为入站端口规则选择 SSH 和 HTTP。 这是因为你将使用 SSH 协议连接到虚拟机,并且在访问 Linux 上运行的 ASP.NET Core应用程序时将使用 HTTP 协议。

      由于选择了 SSK 公钥选项,因此在创建虚拟机时会看到以下消息:

      生成新密钥对

      选择 “下载私钥”并创建资源 ,然后将私钥保存到本地磁盘。 文件的扩展名是 .pem ( 隐私增强邮件 ) 。

      连接到 Linux 虚拟机时,可使用私钥打开门。 因此,不应与其他人共享此密钥。

      确定 IP 地址

      创建虚拟机后,转到资源页,确定并记下虚拟机的公共 IP 地址。 你将使用此 IP 地址连接到虚拟机。

      建议使用静态 IP 地址,因为在测试期间可能需要重启计算机。 使用动态公共 IP 将导致在虚拟机重启后将另一个 IP 地址分配给虚拟机。

      连接到 Linux 虚拟机

      有了 Linux 虚拟机并知道其 IP 地址后,你还可以使用 SSH 公钥身份验证进行私钥身份验证,并且可以登录。 现在是讨论连接到 Linux 虚拟机时将遇到的一些术语的好时机。

      不会使用 GUI 连接到和管理 Linux 虚拟机。 相反,你将使用终端进行连接,使用 shell 运行命令。

      UNIX 终端

      术语“终端”基于早期的计算机模型,这些模型占据了整个房间,并通过打孔卡片读取器和后来的键盘在物理终端受到控制。 如今,终端是物理终端的软件表示形式。 例如,PuTTY 是终端。

      UNIX shell

      UNIX shell 是用户与类似 UNIX 的操作系统之间的接口。 一旦该用户登录到系统,用户就位于 shell 中。 shell 提供命令行解释器 (CLI) ,用于读取和运行命令和脚本以控制系统,然后显示生成的输出。

      shell 也称为“命令行”或“终端”,这些术语是可互换的。 shell 提供了一些命令和可用于编写脚本的编程语言。 有几个不同的 shell 实现。 包括流行的 Bash。

      本文介绍以下连接选项:

    • 使用 PowerShell SSH 终端
    • 使用 PuTTy SSH 终端
    • 使用 PowerShell SSH 终端进行连接

      如果在 Windows 10 版本 1809 或更高版本上运行,则可以使用内置 PowerShell SSH 客户端。 若要连接到虚拟机,请打开 PowerShell,并以以下格式运行 SSH 命令:

      ssh -i <path to .pem private key file> <user>@<host>
      
      ssh -i d:\Learn\Linux\myPrivateKey.pem <UserName>@127.0.0.1
      

      如果以前从未连接过此服务器,则会收到以下警告消息:

      无法确定主机“<HostName>”的真实性。

      如果输入 “是”,则会收到以下更多警告:

      从本质上讲,SSH 客户端希望私钥“更私密”。 换句话说,要连接到的计算机上的其他用户可以访问 .pem 文件中包含的私钥。 预期只有将初始化与 Linux 虚拟机的连接的用户才能访问私钥。

      若要解决此问题,请更改该私钥文件的权限。 为此,请按照下列步骤操作:

    • 找到并右键单击私钥文件,选择 “属性”,然后选择“ 安全” 选项卡。在此示例中,可以看到从文件夹继承的以下权限。

      对于此示例,你只希望 SYSTEM 组和帐户有权访问此文件。 由于权限是从文件夹继承的,因此必须先禁用该继承,然后才能编辑权限。 选择 “高级”,然后选择 “禁用继承”。 系统会出现以下问题:

      想要如何处理当前继承的权限?

      选择 将继承的权限转换为此对象的显式权限

    • 删除除 SYSTEM 之外的所有组,然后添加自己的帐户。 以下是为私钥授予的最终权限。

    • 再次尝试使用相同的 SSH 命令进行连接。 这一次,应建立连接,而不会出现任何错误。

      使用 PuTTY 进行连接

      PuTTY 是用于连接到 Linux 虚拟机的最常用终端之一。 可以在客户端计算机上免费下载并安装 适用于 Windows 的 PuTTY

      PuTTY 易于使用。 但是,请记住,PuTTY 不接受私钥的 PEM 格式。 因此,必须将密钥转换为 PuTTY 期望看到的格式 (PPK) 。 幸运的是,转换 PEM 格式也很容易,因为 PuTTY 密钥生成器 (PuTTYgen) 与终端软件一起安装。

      若要转换文件,请执行以下步骤:

    • 启动 PuTTYgen,并确保选择 RSA 作为要生成的密钥类型。

    • 选择 “加载 ”以选择具有 .pem 扩展名的私钥文件。

    • 确保选择了 所有文件 ,因为 PuTTYgen 的默认选择是 PPK。

    • 找到并打开所需的 PEM 文件。 应会看到以下消息,指示 PuTTYgen 能够导入密钥。 现在,可以以 PPK 格式保存私钥。

    • 选择 “确定”,然后选择 “保存私钥

      PuTTYgen 会提示你确认是否要在没有通行短语的情况下保存密钥。 选择 “是”,然后以 PPK 格式保存私钥。

      现在,你已准备好使用 PPK 文件连接到虚拟机。

    • 启动 PuTTY。 你将使用相同的 <用户名>@<主机|连接信息的 IP 地址> 格式。 可以保存此会话信息,以便稍后重用。 以下屏幕截图显示了保存当前会话后的 “PuTTY 配置 ”对话框。 对话框显示 username>@<host | 中的<主机信息IP 地址>格式和从可用列表中选择后的会话名称。

    • 由于使用的是 SSH 公钥身份验证,因此必须告知 PuTTY 在哪里可以找到私钥。 为此,请展开 SSH,然后在“类别”窗格中选择“身份验证”,然后选择“浏览”。

    • 找到并选择使用 PuTTYgen 创建的 PPK 文件。

    • 选择 “打开 ”以启动会话。

      首次连接到虚拟机时,会收到以下警告消息:

      服务器的主机密钥未缓存到注册表中。 你无法保证服务器是您认为它的计算机。

      此消息类似于首次使用 PowerShell 中的 SSH 客户端连接到虚拟机时生成的消息。

    • 选择 “是 ”以连接到虚拟机。

  •