在本文中,我们将探索如何在Multipass虚拟机管理器中启用SSH(安全远程登录协议),以便于用户能够通过SSH访问和管理他们的虚拟机实例。Multipass是一款由Ubuntu开发的轻量级虚拟机管理器,旨在简化虚拟机的安装和使用,尤其适合初学者[2]。了解如何开启SSH,对于确保你的虚拟机备份和数据安全至关重要。
启用SSH的基本步骤
要启用SSH到Multipass实例,首先需要在宿主机上创建一个SSH密钥对[5]。这是因为Multipass默认不支持无密码登录,所以你需要一个SSH密钥来访问你的虚拟机。
- 创建SSH密钥
在宿主机上,使用ssh - keygen命令生成一个SSH密钥对。这个密钥对将用于将来连接到虚拟机时进行身份验证。例如,如果要为一个名为vmadmin的用户创建密钥对,可以使用如下命令:
sudo ssh - keygen - C vmadmin - f multipass - ssh- key
这里vmuser是你希望通过SSH访问的虚拟机用户名称,- f参数表示只包含文件扩展名,如.ssh/[5][7][11]。
- 导入SSH密钥
生成了SSH密钥对后,接下来需要将其导入到Multipass实例中。这一步可以通过运行multipass shell命令完成,其中代表不指定密码登录[4]。输入以下命令并按回车:
sudo multipass shell
这时,系统会提示输入密码,输入sudo passwd ubuntu并按下Enter键,这样就可以通过SSH登录到Multipass实例了。此时,无需额外设置密码即可访问你的虚拟机[4]。
增强安全性
为了提高安全性,你可以在Multipass实例中配置SSH密钥对[6]。这包括将本地生成的SSH密钥对与虚拟机进行关联,以及可能的话,使用私钥直接访问虚拟机。这种方法允许你通过私钥进行更复杂的身份验证,从而减少被攻击者接管虚拟机的风险。
- 配置SSH密钥对
在虚拟机内,你可以通过multipass shell命令导入SSH密钥对。具体操作如下:
sudo multipass shell
然后,输入ssh - C命令,指定SSH密钥对的来源,例如ubuntu@multipassIp,这里ubuntu@multipassIp代表你的宿主主机IP[4]。如果请求指纹或密码,输入相应的密码并确认。这样,你就成功地将本地SSH密钥对与虚拟机关联起来了。
- 通过SSH访问虚拟机
现在,你可以在宿主机通过SSH访问Multipass实例。如果需要访问特定的虚拟机,可以直接使用宿主机的SSH地址。如果是所有实例,可以在命令行中使用multipass list命令查看列表[1]。
结论
通过上述步骤,你可以轻松开启SSH访问Multipass实例,无论是从本地还是从虚拟机本身。这不仅有助于保护你的数据安全,还能提供一个更加灵活和便捷的虚拟机管理体验。记住,定期更新你的SSH密钥对是保持安全的关键,建议每隔一段时间就更新一次。
参考资料
[4] Connect to you Multipass through SSH - DEV Community,2023年12月05日
[5] How to enable passwordless SSH login on Ubuntu inside Multipass - TechSparx,2024年01月06日
[6] A Comprehensive Guide to Multipass: Simplifying Virtual Machine …,2023年10月11日
[7] Enable ssh access to multipass vms - DEV Community,2022年08月01日
[8] 轻量级虚拟机Multipass-腾讯云开发者社区-腾讯云,2022年11月17日
[9] linux - 为 Multipass 添加固定 IP,以供局域网使用 - 个人文章 - SegmentFault 思否,2023年06月25日
[10] Enable Root Login Over SSH to Multipass Virtual Machines
[11] Multipass Key-Based Authentication - The Blog of Ivan Krizsan
[12] How do I log in to an instance using ssh? #1203 - GitHub
[13] How to set up a graphical interface | Multipass documentation