Azure中创建安全Linux 虚机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure中创建安全Linux 虚机相关的知识,希望对你有一定的参考价值。

由于密码易受到强力破解攻击,特别是在面向 Internet 的 VM(如 Web 服务器)上。连接到 Azure 中的 Linux 虚拟机 (VM) 时,应使用公钥加密提供更安全的方式登录到 Linux VM。 此过程涉及使用安全外壳 (SSH) 命令进行公钥和私钥交换,对自己(而不是用户名和密码)进行身份验证。笔者将通过本文介绍如何如何在 Windows 计算机上生成相应的密钥并在Azure中创建Linux虚机时使用SSH密钥。Azure 需要至少 2048 位采用 ssh-rsa 格式的公钥和私钥。可以使用ssh-keygen或者openssl工具来生成相关的密钥,这两个工具在git中都有提供,我们需要先安装git。

1、安装Git

  • 从以下位置下载并安装 Git for Windowshttps://git-scm.com/

  • 在安装过程中,除非特别需要更改选项,否则请接受默认选项。

  • 从“开始”菜单 > “Git” > “Git Bash”运行“Git Bash”。

技术分享图片

2、创建ssh私钥

在“Git Bash”窗口中,使用 openssl.exe 创建私钥。 以下示例创建名为 myPrivateKey 的密钥和名为 myCert.pem 的证书:

openssl.exe req -x509 -nodes -days 365 -newkey rsa:2048 \
     -keyout myPrivateKey.key -out myCert.pem

技术分享图片

应答国家/地区名称、位置、组织名称等提示。其中国家使用2个字符的代码,中国为cn

技术分享图片

将在当前工作目录中创建新的私钥和证书。 为了安全起见,应在私钥上设置权限,以便只有可以访问它:chmod 0600 myPrivateKey.key

技术分享图片

3、为 PuTTY 创建私钥

PuTTY 是适用于 Windows 的常见 SSH 客户端。 可随意使用任何所需的 SSH 客户端。 要使用 PuTTY,需要创建其他类型的密钥 - PuTTY 私钥 (PPK)。

使用 Git Bash 将私钥转换为 PuTTYgen 可以识别的 RSA 私钥。 以下示例基于名为 myPrivateKey 的现有密钥创建名为 myPrivateKey_rsa 的密钥:openssl rsa -in ./myPrivateKey.key -out myPrivateKey_rsa

技术分享图片

为了安全起见,应在私钥上设置权限,以便只有可以访问它:chmod 0600 myPrivateKey_rsa

技术分享图片

从以下位置下载并运行 PuTTYgen:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

单击菜单:“文件” > “加载私钥”

技术分享图片

找到私钥(前面的示例中的 myPrivateKey_rsa)。 启动 Git Bash 时的默认目录是 C:\Users\%username%。 更改文件筛选器以显示“所有文件 (*.*)”:

技术分享图片

单击“打开”。公钥会显示在“PuTTYgen”窗口的顶部。 创建 Linux VM 时,将此公钥复制并粘贴到 Azure 门户或 Azure 资源管理器模板中。 也可以单击“保存公钥”将副本保存到计算机中:

技术分享图片

4、Azure中创建安全Linux虚机

登录Azure门户,然后创建虚拟机,在创建 Linux VM 时将此上述公钥复制并粘贴到 Azure 门户。 然后,此公钥通常存储在新 VM 上的 ~/.ssh/authorized_keys 中。

技术分享图片

返回到 PuTTYgen 中,单击“保存私钥”:会显示一个提示,询问是否想要继续,而不输入密钥的通行短语。 通行短语就像附加到私钥的密码。 即使有人获取了私钥,他们仍将不能只使用密钥进行身份验证。 他们还需要通行短语。 没有通行短语,如果有人获取了私钥,他们可以登录到使用该密钥的任何 VM 或服务。 建议创建一个通行短语。 但是,如果忘记了通行短语,将没有办法恢复它。

技术分享图片

如果要输入通行短语,请单击“否”,在主要的 PuTTYgen 窗口中输入通行短语,再次单击“保存私钥”。 否则,请单击“是”以继续,而不提供可选的通行短语。

5、使用 Putty 通过 SSH 登录到 Linux 计算机

从以下位置下载并运行 putty:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

在 Putty Hostname中填写 [email protected](或[email protected]主机名)如下图

技术分享图片

注意:不能只填写IP地址或者主机名,否则连接后还会出现让你输入用户名密码。

在选择“打开”之前,单击“连接” > “SSH” > “身份验证”选项卡。浏览到私钥并选择它:

技术分享图片

点击open,即可直接连接到Azure中的该台Linux虚机,无需再输入用户名和密码。

技术分享图片

以上是关于Azure中创建安全Linux 虚机的主要内容,如果未能解决你的问题,请参考以下文章

Azure Linux 虚机图像化配置之二:Ubuntu配置

在 Linux 中创建 Azure Service Fabric 本地集群

Azure Linux 虚机图像化配置之四:配置问题汇总

在 Azure 中创建 Node.js Web 应用

无法在 Azure mySQL 中创建函数/存储过程

Azure Linux 虚机图像化配置之一:CentOS配置