博客
关于我
Linux服务器登陆安全设置,并使用ssh keys登陆
阅读量:803 次
发布时间: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/

你可能感兴趣的文章
Objective-C实现PNG图片格式转换BMP图片格式(附完整源码)
查看>>
Objective-C实现pollard rho大数分解算法(附完整源码)
查看>>
Objective-C实现quick select快速选择算法(附完整源码)
查看>>
Objective-C实现recursive bubble sor递归冒泡排序算法(附完整源码)
查看>>
Objective-C实现recursive insertion sort递归插入排序算法(附完整源码)
查看>>
Objective-C实现RedBlackTree红黑树算法(附完整源码)
查看>>
Objective-C实现redis分布式锁(附完整源码)
查看>>
Objective-C实现reverse letters反向字母算法(附完整源码)
查看>>
Objective-C实现ripple adder涟波加法器算法(附完整源码)
查看>>
Objective-C实现RodCutting棒材切割最大利润算法(附完整源码)
查看>>
Objective-C实现Romberg算法(附完整源码)
查看>>
Objective-C实现round robin循环赛算法(附完整源码)
查看>>
Objective-C实现RRT路径搜索(附完整源码)
查看>>
Objective-C实现rsa 密钥生成器算法(附完整源码)
查看>>
Objective-C实现RSA密码算法(附完整源码)
查看>>
Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
查看>>
Objective-C实现segment tree段树算法(附完整源码)
查看>>
Objective-C实现selection sort选择排序算法(附完整源码)
查看>>
Objective-C实现sha256算法(附完整源码)
查看>>
Objective-C实现shell sort希尔排序算法(附完整源码)
查看>>