配置 SSH 免密登录

1,786 阅读2分钟

配置 SSH 免密登录可以让你在不需要每次输入密码的情况下登录远程服务器。以下是详细步骤,适用于配置多个用户:

1. 生成 SSH 密钥对

首先,为你的用户生成一个 SSH 密钥对。如果你已经有了密钥对,可以跳过这一步。

在你的本地机器上,打开终端并运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

此命令会生成一个 4096 位的 RSA 密钥对。按提示操作,通常可以直接按回车使用默认路径 (~/.ssh/id_rsa)。

2. 添加公钥到远程服务器

将生成的公钥添加到远程服务器的 authorized_keys 文件中。

使用 ssh-copy-id 命令可以方便地将公钥复制到远程服务器:

ssh-copy-id user@remote_host

其中,user 是远程服务器上的用户名,remote_host 是远程服务器的 IP 地址或域名。

你也可以手动复制公钥。首先,显示公钥的内容:

cat ~/.ssh/id_rsa.pub

然后在远程服务器上登录并将其添加到 ~/.ssh/authorized_keys 文件中:

ssh user@remote_host
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

3. 配置多个用户的免密登录

重复上述步骤,为每个用户生成各自的 SSH 密钥对并将公钥添加到目标服务器的 authorized_keys 文件中。

你可以将多个公钥添加到同一个 authorized_keys 文件中,每行一个公钥。例如:

cat ~/.ssh/id_rsa_user1.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa_user2.pub >> ~/.ssh/authorized_keys

4. 验证免密登录

现在,你可以从本地机器以免密方式登录到远程服务器:

ssh user@remote_host

如果成功登录而不需要输入密码,说明配置正确。

5. 配置 SSH 配置文件(可选)

为了简化登录过程,你可以配置 SSH 客户端的 config 文件。编辑 ~/.ssh/config 文件,添加如下内容:

Host remote_alias
    HostName remote_host
    User user
    IdentityFile ~/.ssh/id_rsa

这样,你就可以通过简短的命令登录:

ssh remote_alias

通过上述步骤,你可以为多个用户配置 SSH 免密登录,简化登录过程。