学习:创建 Ubuntu Droplet
Source: Dev.to
介绍
我的 Sushi 项目(即将上线) 的下一步是寻找云服务提供商。由于我在欧洲,而我的客户在巴西,我需要一个能够在跨地区保证 24/7 正常运行的解决方案。于是我们决定使用 DigitalOcean(DO)的 Ubuntu Droplet。
为了最大化效率,我需要将本地机器连接到远程服务器。第一步是将我的 SSH 密钥添加到虚拟机,以确保安全、无缝的连接。
在 Ubuntu 上创建 SSH 密钥
以下教程说明了如何在本地计算机上创建 SSH 密钥:
提示: 在生成密钥之前为每个项目创建一个专用目录。这可以将密钥隔离,便于在不影响其他环境的情况下删除或重新创建它们。
示例命令
# Create a directory for the project
mkdir -p ~/ssh-keys/sushi-project
cd ~/ssh-keys/sushi-project
# Generate a new SSH key pair
ssh-keygen -t ed25519 -C "your_email@example.com" -f id_ed25519
设置 DigitalOcean Droplet
在 DigitalOcean 上创建 Droplet 非常简单。Droplet 创建完成后,需要将你的公钥复制到服务器上。
排查 SSH 连接问题
在第一次尝试时,我遇到了以下错误:
Fail to copy due to error: port 22: Connection refused
原因是本地机器上没有运行 SSH 服务。以下步骤解决了该问题:
# Allow SSH through the firewall
sudo ufw allow 22
# Start and enable the SSH service
sudo systemctl start ssh
sudo systemctl enable ssh
验证服务是否在运行:
sudo netstat -anp | grep sshd
更多细节请参阅 Ask Ubuntu: “Why am I getting a port 22 connection refused error?”。
将 SSH 密钥复制到 Droplet
使用 ssh-copy-id 将公钥传输到远程服务器:
ssh-copy-id -i /path/to/your/id_ed25519.pub user@remote-host
# or
ssh-copy-id -i /path/to/your/id_ed25519.pub user@remote-ip
连接到 Droplet
密钥复制完成后,使用以下命令连接:
ssh root@remote-ip -i /path/to/your/id_ed25519
额外:验证密钥安装
为了确认密钥已正确添加,检查 Droplet 上的 authorized_keys 文件:
cat ~/.ssh/authorized_keys
你应该能看到本地公钥的内容。