使用 SSH 连接虚拟机中的 Ubuntu Server
本文简单的介绍了如何通过 SSH 连接到 VirtualBox 中的 Ubuntu Server 来进行日常的开发工作。
准备工作
- 安装好的 VirtualBox 软件
- 创建好的 Ubuntu Server 20.04 LTS 虚拟机
1.虚拟机中安装 SSH 服务
# 更新软件源
sudo apt update && sudo apt upgrade
# 安装 SSH 服务
sudo apt install openssh-server
# 验证 SSH 服务是否安装成功
sudo systemctl status ssh
2.配置 VirtualBox 网络
默认情况下,VirtualBox 会为您的虚拟机创建网络地址转换 (NAT) 适配器。这允许虚拟机访问互联网,但会阻止其他设备通过 SSH 访问它。
在虚拟机启动的时候,我们可以通过 ip -4 addr
命令查看虚拟机的 IP 地址,我们可以看到虚拟机的 IP 地址为 10.0.2.16
记录下来,后面会用到。
然后将虚拟机的电源关闭,开始配置虚拟机的网络。
- 右键单机要设置的虚拟机,点击设置(Settings)齿轮图标打开设置窗口。
- 点击网络(Network)选项卡,默认选择第一个适配器(Adapter 1)。
- 接下来点击高级(Advanced)选项展开高级设置,点击端口转发(Port Forwarding)打开设置窗口。
- 点击右边绿色的添加(Add)按钮,添加一个新的端口转发规则。
- 在弹出的窗口中,设置如下参数:
- 名称:SSH
- 协议:TCP
- 主机IP:127.0.0.1
- 主机端口:12022
- 虚拟机IP:10.0.2.15
- 虚拟机端口:22
- 点击确定(OK)按钮,完成端口转发规则的添加。
3.通过 SSH 连接
在本地终端中,通过 ssh
命令连接到虚拟机。
ssh -p 12022 [email protected]
# username 为虚拟机的登录用户名
# 输入密码
(invisible)
# 连接成功
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-137-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information disabled due to load higher than 1.0
0 updates can be applied immediately.
Last login: Tue Jan 17 23:30:22 2023 from 10.0.2.2
4.配置 SSH 免密登录
在本地终端中,通过 ssh-keygen
命令生成 SSH 密钥对。
ssh-keygen -t rsa -b 4096 -C "awsuser@myserver"
# 输入文件名
mykey
# 输入密码
(invisible)
# 再次输入密码
(invisible)
记得将 awsuser@myserver
替换成你自己的邮箱地址。
记得修改文件名,否则会覆盖掉原来的密钥对。
在本地终端中,通过 ssh-copy-id
命令将公钥复制到虚拟机中。
ssh-copy-id -i ~/.ssh/mykey -p 12022 [email protected]
# 输入密码
(invisible)
在本地终端中,通过 ssh
命令连接到虚拟机。
ssh -p 12022 [email protected]
# 已经不需要输入密码了
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-137-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information disabled due to load higher than 1.0
0 updates can be applied immediately.
Last login: Tue Jan 17 23:30:22 2023 from 10.0.2.2
5.禁用 SSH 密码登录
在虚拟机中,通过 sudo
命令修改 SSH 配置文件。
sudo vim /etc/ssh/sshd_config
# 修改 PasswordAuthentication 参数
PasswordAuthentication no
# ESC 退出编辑模式,输入 :wq 保存并退出。
# 重启 SSH 服务。
sudo systemctl restart sshd
最后修改于 2023-02-03
感谢您的支持 :D