如何向服务器添加 ssh 公钥
原创怎样向服务器添加 ssh 公钥
在Linux和Unix系统中,SSH(Secure Shell)是一种稳固协议,用于在网络中加密地传输数据。SSH公钥认证是一种常用的稳固登录方法,它允许用户通过公钥和私钥对来访问远程服务器,而不需要输入密码。以下是怎样向服务器添加SSH公钥的详细步骤。
### 1. 生成 SSH 密钥对
首先,您需要在本地计算机上生成一对SSH密钥,包括公钥和私钥。
bash
ssh-keygen -t rsa -b 4096
上述命令会生成一个名为`id_rsa`的私钥和一个名为`id_rsa.pub`的公钥。
### 2. 复制公钥到剪贴板
通常情况下,您不需要手动复制公钥内容,由于大多数SSH客户端都会自动完成这一步骤。但如果需要手动操作,可以使用以下命令:
bash
cat ~/.ssh/id_rsa.pub
这将显示您的公钥内容,您可以将其复制到剪贴板。
### 3. 登录到服务器
使用SSH客户端登录到您的服务器。如果您使用的是命令行工具,可以使用以下命令:
bash
ssh user@server_ip
如果您使用的是图形界面SSH客户端,按照软件的提示进行操作。
### 4. 将公钥添加到服务器的 `~/.ssh/authorized_keys` 文件
在服务器上,将您的公钥添加到`~/.ssh/authorized_keys`文件中。这个文件通常位于用户的主目录下的`.ssh`文件夹中。
首先,确保`.ssh`文件夹存在:
bash
mkdir -p ~/.ssh
然后,将公钥添加到`authorized_keys`文件中。如果文件已经存在,可以使用以下命令:
bash
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果文件是新的,您需要创建并编辑它:
bash
nano ~/.ssh/authorized_keys
然后将公钥粘贴到文件中,并保存退出。
### 5. 设置文件权限
为了确保稳固性,您需要设置`.ssh`文件夹和`authorized_keys`文件的正确权限:
bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
### 6. 测试 SSH 登录
现在,您应该能够使用SSH密钥对登录到服务器,而不需要输入密码。尝试以下命令:
bash
ssh -i ~/.ssh/id_rsa user@server_ip
如果一切设置正确,您应该能够胜利登录到服务器。
### 7. 使用 PuTTY 连接到 Windows 服务器
如果您使用的是Windows系统,并且想要使用PuTTY连接到服务器,您需要将公钥导入到PuTTYgen中。
- 打开PuTTYgen。
- 点击“Load”按钮,选择您的私钥文件(通常是`id_rsa`)。
- 将公钥的内容复制并粘贴到PuTTYgen的“Key”框中。
- 点击“Save private key”保存私钥,并为其设置密码(如果需要)。
- 在PuTTY中,选择“Session” -> “Import known hosts” -> “Add known host”。
- 输入服务器的IP地址或主机名,然后点击“Add”。
- 点击“Open”启动PuTTY会话。
### 总结
通过以上步骤,您已经胜利地向服务器添加了SSH公钥,并可以使用密钥对进行稳固登录。这种方法比传统的密码登录更稳固,由于它减少了密码泄露的风险。如果您有多个服务器,可以重复上述步骤,将公钥添加到每个服务器的`authorized_keys`文件中。