linux下怎么采用密钥登录
linux下怎么采用密钥登录详细介绍
在 Linux 系统中使用密钥登录 SSH 可以提高安全性,避免频繁输入密码。以下是详细步骤:
一、生成密钥对(客户端操作)
- 检查是否已有密钥
首先查看本地是否存在现有的 SSH 密钥(默认存储在~/.ssh/目录):
bash~/.ssh - 生成新的密钥对
若没有密钥,使用ssh-keygen命令生成(推荐使用 RSA 2048 位或更高):
bashssh-keygen rsa- 按回车使用默认存储路径(
~/.ssh/id_rsa) - 可设置密码(非必需,建议设置以增强安全性)
- 按回车使用默认存储路径(
二、上传公钥到服务器(客户端操作)
- 通过
ssh-copy-id自动上传(推荐)
直接使用工具将公钥添加到服务器的~/.ssh/authorized_keys文件中:
bashssh-copy-id username@server_ip- 输入服务器密码完成认证
- 若提示找不到命令,手动复制公钥内容:bash
~/.ssh/id_rsa.pub username@server_ip
- 手动上传(适用于无
ssh-copy-id场景)- 复制公钥内容:bash
~/.ssh/id_rsa.pub - 登录服务器,将公钥粘贴到
~/.ssh/authorized_keys文件末尾(确保文件存在,权限为600):bashusername@server_ip~/.ssh
~/.ssh/authorized_keys
~/.ssh/authorized_keys
- 复制公钥内容:bash
三、配置服务器端 SSH 服务(管理员操作)
- 编辑 SSH 配置文件
bash/etc/ssh/sshd_config - 启用密钥登录相关配置
确保以下参数未被注释或设置正确(若被注释,删除#并修改值):
configPubkeyAuthentication yes # 启用公钥认证AuthorizedKeysFile .ssh/authorized_keys # 指定公钥文件路径
PasswordAuthentication no # (可选)禁用密码登录,增强安全性
- 重启 SSH 服务
bashsystemctl restart sshd
四、测试密钥登录
bash
username@server_ip
- 成功登录则无需输入服务器密码(若禁用了密码登录)。
- 若失败,检查:
- 服务器
authorized_keys文件权限是否为600,目录~/.ssh/权限是否为700 - SSH 服务配置是否正确重启
- 防火墙是否允许 SSH 端口(默认 22)
- 服务器
五、进阶:使用 SSH Agent 管理密钥(可选)
- 启动 SSH Agent
bashssh-agent "912eval
- 添加私钥到 Agent
bashssh-add ~/.ssh/id_rsa912ssh-add ~/.ssh/id_rsa
- 后续登录无需重复输入密钥密码(除非重启 Agent)。
通过以上步骤,即可在 Linux 下实现安全的 SSH 密钥登录。密钥登录相比密码登录更安全,且支持无密码自动认证,适合服务器管理和持续集成场景。