《Windows Azure Platform 系列文章目录》
本文介绍内容适合于Azure Global和Azure China
为什么使用SSH登录Azure Linux虚拟机?
我们知道,在Azure平台创建的Linux虚拟机都会打开SSH。如果我们使用用户名和密码方式登录Azure Linux的话,安全性是非常差的。因为Azure Linux VM的SSH端口暴露在Internet上,会有不怀好意的黑客频繁登录我们创建的Azure Linux VM。如果我们没有设置强密码的话,笔者建议从以下三点来提高安全性:
1.如果客户端是固定公网IPV4地址,可以针对SSH端口设置Access Control List (ACL),可以参考:
Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限
2.如果客户端是非固定公网IPV4地址,可以设置Linux SSH方式登录。这样安全性可以得到显著提高。
Linux SSH是一个非常成熟的技术,笔者也是Linux初学者,如果介绍有任何问题,还请读者轻拍,谢谢!
在开始本章之前,笔者的环境如下:
1.Azure账户,Azure China或者Azure Global都可以
2.本地笔记本电脑,安装Win10操作系统
3.下载OpenSSL for Windows,http://gnuwin32.sourceforge.net/packages/openssl.htm
4.下载PuttyGen,下载地址是:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
5.下载Putty
第一部分:我们需要通过OpenSSL,生成PEM文件
1.我们首先使用OpenSSL,生成PEM文件,如下:
# openssl.exe req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem
注:上面的-days 3650表示有效期为3650天
2.你的屏幕执行如下:
3.在上图的界面中,回答系统的问题。或者直接按回车
4.执行openssl.exe命令之后,会在同一目录下生成2个新的文件myPrivateKey.key和myCert.pem。
myCert.pem这个文件我们在创建Azure Linux VM的时候需要。
第二部分:我们登录Azure Portal,创建Linux VM。
在创建VM的时候,身份验证选择SSH密钥,如下图:
上图的证书,记得选择我们在步骤一中,使用OpenSSL生成的myCert.pem文件。
第三部分,使用PuttyGen,生成密钥。
1.我们运行puttygen.exe
2.执行File > Load a Private Key
3.选择我们在步骤一中生成的myPrivateKey.key
4.选择完毕后,在下图中,点击Save Private Key
5.保存的文件名为private.ppk
6.另外如果我们想导出ssh.com key的话,可以点击下图中的Conversions -> Export ssh.com key
第四部分,我们在本地笔记本电脑,运行Putty.exe
1.Host Name我们输入在Azure上创建的Azure Linux VM Cloud Service Name,如下图:
2.在Putty界面里,Connection > SSH > Auth。选择我们在步骤3中导出的private.ppk文件
3.然后我们点击连接Open,登录名选择我们在步骤二中设置的用户名azureuser。这样就可以直接登录了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2014-10-03 Azure PowerShell (4) 使用PowerShell管理多个订阅