博客
关于我
Linux服务器登陆安全设置,并使用ssh keys登陆
阅读量:794 次
发布时间:2023-02-04

本文共 1600 字,大约阅读时间需要 5 分钟。

在SSH中使用密码验证被认为是一种不好的习惯。SSH密钥能够实现无需向远程服务器发送密码即可完成身份验证,大大提升了安全性。以下是为Linux服务器配置SSH密钥的简单步骤。

1. 检查服务器上的用户和用户组

在开始配置之前,需要确认服务器上允许登录的用户。可以通过以下命令来查看用户组和用户信息:

  • 查看用户组:使用cat /etc/group命令。

    /etc/group文件记录了用户组的信息,包含用户组名称、密码、GID以及用户列表。每一行的四个字段依次为:用户组名称、用户组密码、用户组ID、用户列表(用户之间用逗号分隔)。
    例如:

    www:x:500:

    这里的www是用户组名称,x是用户组密码,500是用户组ID,最后一个字段为空表示用户组使用的是GID作为用户名。

  • 查看用户信息:使用cat /etc/passwd命令。

    /etc/passwd文件记录了用户的详细信息,包含7个字段:用户名、密码、用户ID、用户组ID、未知字段、主目录、登录Shell。
    例如:

    root:x:0:0:root:/root:/bin/bashwww:x:500:500::/home/www:/sbin/nologin

    第三个字段(用户ID)大于500的用户通常是非系统用户。第七个字段如果是nologin,表示该用户无法登录。

2. 为登录用户配置用户组和用户账号

  • 创建用户组

    使用groupadd命令创建用户组。例如:

    groupadd www

    这将创建一个名为www的用户组。

  • 创建用户账号

    使用useradd命令创建用户,并指定所属用户组。例如:

    useradd -g www wwwuser

    这将创建一个名为wwwuser的用户账号,并将其分配到www用户组。

  • 设置用户密码

    使用passwd命令为新用户设置密码。例如:

    passwd wwwuser

    输入并确认密码。随后,使用root账号登录服务器,设置wwwuser的密码。

3. 禁止root账号登录

为了避免因误操作或攻击导致的安全风险,可以禁止root账号登录。修改/etc/ssh/sshd_config文件中的PermitRootLogin选项,设置为no。然后重启SSH服务:

sudo systemctl restart sshd

此时,root账号将无法直接登录。如果需要访问root权限,可以先使用普通账号登录,然后使用sudo命令切换。

4. 配置SSH密钥登录

  • 生成SSH密钥

    使用ssh-keygen -t rsa命令在用户账号目录下的.ssh文件夹中生成新的SSH密钥对。

    ssh-keygen -t rsa

    生成的密钥对包括id_rsaid_rsa.pub两个文件。

  • 上传公钥到服务器

    将生成的id_rsa.pub文件复制到远程服务器,并将其重命名为authorized_keys。然后将私钥id_rsa文件添加到本地客户端的.ssh文件夹中。

  • 禁用密码登录

    修改/etc/ssh/sshd_config文件中的PasswordAuthentication选项,设置为no,然后重启SSH服务:

    sudo systemctl restart sshd

    这样,SSH服务器将不再接受密码登录,只能通过SSH密钥进行认证。

5. 测试SSH密钥登录

  • 本地测试

    使用生成的私钥文件尝试连接到远程服务器:

    ssh -i /path/to/id_rsa remoteuser@server.com

    如果成功登录,说明SSH密钥配置正确。

  • 服务器测试

    确保authorized_keys文件正确地位于~remoteuser/.ssh目录中,并且权限设置为600(读、写、属性可执行,否则可能导致拒绝登录)。

通过以上步骤,您可以安全、高效地为Linux服务器配置SSH密钥登录,从而大大提升服务器的安全性。

转载地址:http://nnkfk.baihongyu.com/

你可能感兴趣的文章
Linux常用命令总结
查看>>
Linux常用命令汇总
查看>>
Linux常用命令详解与示例
查看>>
linux常用命令:cal 命令
查看>>
Linux常用命令:touch
查看>>
Linux常用嗅探工具(1):fping命令
查看>>
linux常用基本命令
查看>>
Linux常用基本命令(xargs )
查看>>
linux常用快捷键
查看>>
Linux常用的网络命令有哪些?快速入门!
查看>>
linux常见命令
查看>>
linux常见操作命令及操作符意思
查看>>
Linux常见操作命令整理
查看>>
Linux平台安装mongoDB、配置及端口开启
查看>>
linux库列表
查看>>
linux开启nscd服务缓存加速-DNS缓存
查看>>
Linux开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
查看>>
Linux开机启动、利用crontab实现开机启动某个程序
查看>>
linux开机启动脚本制作
查看>>
linux开机随笔
查看>>