Mac 本机配置远程服务器的免密 SSH 登录

在本地电脑上针对服务器进行远程登录配置,是非常必要的操作,不仅可以快速登录服务器,而且在使用 Datagrip 连接远程数据库时,也可以通过 SSH 配置文件的方式,快速进行认证并且连接。

 id_ed25519 作为 SSH 密钥对是一种更安全且现代的认证方式,相比传统的 RSA 密钥,它在性能和安全性上都更好。

首先,在阿里云控制台上,进入 ECS -> 网络与安全 -> 安全组,确保它允许来自你 IP 地址的 22端口(TCP) 访问。

生成 SSH 密钥对(id_ed25519)

1. 打开终端,输入以下命令生成 SSH 密钥对:

ssh-keygen -t ed25519 -C "[email protected]"

-t ed25519:指定密钥类型为 ed25519。

-C "[email protected]":为密钥添加一个注释(通常是你的电子邮件地址,用于标识密钥)。

2. 然后,系统会提示你选择保存密钥的路径(默认是 ~/.ssh/id_ed25519)。你可以按回车键选择默认路径。

Enter file in which to save the key (/Users/yourusername/.ssh/id_ed25519):

3. 设置密钥的 密码(可选),如果你不想设置密码,直接按回车键跳过。

4. 完成后,~/.ssh 目录下会生成两个文件:

id_ed25519:私钥文件。

id_ed25519.pub:公钥文件。

将公钥添加到 ECS 实例

1. 登录到阿里云管理控制台,进入 ECS 实例 页面。

2. 在实例的 “管理” 中,找到 “设置 SSH 密钥”“密钥对管理”

3. 打开你本机电脑生成的 id_ed25519.pub 公钥文件。你可以使用以下命令查看内容:

cat ~/.ssh/id_ed25519.pub

4. 将公钥内容复制,然后在 ECS 命令行中,通过 vim 来将 id_ed25519.pub 公钥内容添加到 ~/.ssh/authorized_keys 文件中。

• 在“SSH 密钥管理”中选择 “导入公钥” 或直接粘贴公钥内容。

5. 确保权限正确

确保 ~/.ssh 目录和 authorized_keys 文件的权限设置正确:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

6. 测试 SSH 登录

现在,公钥已经添加到 authorized_keys 文件中了,你可以使用私钥从本地机器连接到 ECS 实例进行测试:

ssh -i ~/.ssh/id_ed25519 root@your-ecs-public-ip

如果没有输入密码即可连接,选择 yes,即可成功登录。

7. 可选:配置 SSH 配置文件简化连接

一般情况下,都会配置一个简化别名连接,比如通过 ssh ecs 即可直接无感进入到服务器。

在 ~/.ssh/config 文件中,通过 vim 添加以下内容:

Host ecs
  HostName your-ecs-public-ip
  User root
  IdentityFile ~/.ssh/id_ed25519

然后,你只需要输入以下命令即可连接,其中 ecs 是别名,可以随便起。

ssh ecs