ssh密钥登录配置

ssh的密钥登录配置

一、生成密钥

1.Xshell->工具->新建密钥生成向导

在这里插入图片描述

2.生成密钥参数

在这里插入图片描述

  • 密钥类型我选用RSA
  • 密码长度2048位

3.生成公钥对

在这里插入图片描述

4.设置用户密钥信息

在这里插入图片描述

  • 设置密钥名称:根据情况自行设置

  • 点击下一步,点击继续
    在这里插入图片描述

  • 点击另存为
    在这里插入图片描述

  • 点击完成

  • 后续将生成的密钥放置到服务器指定位置

二、ssh配置

1.修改sshd_config文件

  • 进入linux系统,输入命令
vi /etc/ssh/sshd_config // 文件位置
  • 修改验证方式
    在这里插入图片描述

  • 开启密钥验证:PubkeyAuthentication yes

  • 关闭密码验证:PasswordAuthentication no

2.生成的密钥传输到服务器

在这里插入图片描述

  • 使用xftp等工具进行文件传输

3.导入公钥

如果没有对应文件夹自己创建,将公钥放到指定文件夹
在这里插入图片描述

mkdir .ssh
mv id_rsa_2048.pub .ssh/
cd .ssh/
cat id_rsa_2048.pub > authorized_keys

// 重启服务
service sshd restart
// 查看状态
systemctl status sshd.service

4.登录验证

配置完成,重新连接,使用ssh登录进行检验
在这里插入图片描述

三、注意事项

1.设置PasswordAuthentication no但是仍然可以进行密码验证登录

可能原因:
较新版本的openssh中
ssh配置禁用密码验证登录配置文件不在/etc/ssh/sshd_config

在这里插入图片描述
打开文件设置为PasswordAuthentication为no即可

配置 SSH 密钥登录时,权限问题是最常见的障碍之一。SSH 对文件和目录的权限有严格要求,任何不正确的设置都可能导致密钥认证失败。 ### 正确配置 SSH 密钥登录的步骤如下: #### 1. 在客户端生成密钥对 使用以下命令生成 RSA 类型的密钥对(默认情况下会生成 2048 位): ```bash ssh-keygen -t rsa ``` 该命令将在 `~/.ssh/` 目录下生成两个文件: - `id_rsa`:私钥(必须妥善保管) - `id_rsa.pub`:公钥(可以安全地传输) #### 2. 将公钥复制到服务器 使用 `ssh-copy-id` 命令将公钥上传至远程服务器: ```bash ssh-copy-id user@remote_host ``` 此操作会将本地的公钥添加到远程主机的 `~/.ssh/authorized_keys` 文件中。 #### 3. 检查并设置正确的文件和目录权限 ##### 客户端相关目录和文件权限 - 用户主目录(`/home/user`)不能对“其他”用户开放写权限: ```bash chmod go-w ~ ``` - `.ssh` 目录权限应为 `700`: ```bash chmod 700 ~/.ssh ``` - 私钥文件(`~/.ssh/id_rsa`)权限应为 `600`: ```bash chmod 600 ~/.ssh/id_rsa ``` - 公钥文件(`~/.ssh/id_rsa.pub`)权限建议设为 `644`: ```bash chmod 644 ~/.ssh/id_rsa.pub ``` ##### 服务端相关目录和文件权限 - 远程用户的主目录同样不能对“其他”用户开放写权限: ```bash chmod go-w /home/remote_user ``` - `.ssh` 目录权限应为 `700`: ```bash chmod 700 /home/remote_user/.ssh ``` - `authorized_keys` 文件权限应为 `600`: ```bash chmod 600 /home/remote_user/.ssh/authorized_keys ``` #### 4. 配置 `sshd_config` 文件 编辑 `/etc/ssh/sshd_config` 文件,确保以下选项已正确设置以支持密钥认证: ``` PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 ``` 此外,如果希望禁用密码登录,可设置: ``` PasswordAuthentication no ``` #### 5. 重启 SSH 服务 修改完 `sshd_config` 后,需要重启 SSH 服务使更改生效: ```bash systemctl restart sshd ``` ### 常见权限问题及解决方法 - **问题描述**:提示 `Agent admitted failure to sign using the key`。 - **解决方法**:确认私钥已加载到 `ssh-agent` 中: ```bash eval $(ssh-agent) ssh-add ~/.ssh/id_rsa ``` - **问题描述**:提示 `Permission denied (publickey)`。 - **解决方法**:检查远程服务器上的 `~/.ssh/authorized_keys` 文件是否包含正确的公钥内容,并确保其权限为 `600`。 - **问题描述**:日志显示 `Authentication refused: bad ownership or modes for directory /home/user`。 - **解决方法**:确保用户的主目录、`.ssh` 目录及其下的 `authorized_keys` 文件权限符合上述建议。 通过以上步骤,应该能够成功配置 SSH 密钥登录并解决因权限不当导致的问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值