• 【转】服务器添加新用户用ssh-key 登录,并禁用root用户 密码登录


    【转】Linux最高权限用户root,默认可以直接登录sshd。为了提高服务器的安全度,需要对它进行禁止,使得攻击者无法通过暴力破解来获取root权限。

     ps: 以下内容皆非原创,只是个人的一个实践过程的一个记录,记录下来一是怕自己忘记,而是给像我那样的小白,可以一篇搞定服务器安全登录问题。主要参考了几个优秀的博客文章,皆在文章后面列出,感谢原创!

    一、添加新用户并且修改sshd 默认端口

      1.1 新建用户

    1,新建一个用户;

    #useradd xxx (xxx为你要新建的用户名)

    2,为新用户设置密码;

    #passwd xxx (xxx为你要新建的用户名)

    3,修改SSHD配置,禁止root直接登录

    #vi /etc/ssh/sshd_config

    查找“#PermitRootLogin yes”,将前面的“#”去掉,段末“yes”改为“no”(不同版本可能区分大小写),并保存文件。

    4.为新添加的用户添加root权限

    vi /etc/sudoers 
    #方法一:将下面#号去掉,保存
    #%wheel ALL=(ALL) ALL
    修改新添加的用户,使属于root组
    #usermod -g root xxx
    #方法二:直接添加root权限, 直接复制下面root的那行,用户改成我们新添加的用户就可以了
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    xxx ALL=(ALL) ALL

    权限添加完之后,使用xxx用户登录操作,提示权限不足的时候,就可以直接sudo啦

    注:要是找不到sudoers,那么就先安装sudo吧 yum install sudo.

      1.2修改sshd默认端口

    虽然更改端口无法在根本上抵御端口扫描,但是,可以在一定程度上提高防御。

    1.打开sshd配置文件

    #vi /etc/ssh/sshd_config

    2.找到#Port 22字段删掉#,将22改为其他不被使用的端口

    服务器端口最大可以开到65536

    3.重启sshd服务

    #service sshd restart

    4.别忘了修改登陆工具那的端口设置。

    二、为新用户添加ssh-key登录,禁止密码登录

     1. 生成ssh-key

    ssh-keygen -t rsa -f test -C "test key" //-f 文件名 -C 备注  -t 类型

    2. 上传公钥到服务器

    ssh-copy-id -i ~/.ssh /id_rsa.pub  A@IP_address 
    //这一步会将公钥上传到 A 中的 /home/A/.ssh/authorized_keys
    //authorized_keys 文件,是用来存放授权密钥的

    3. 设置服务器公钥的权限

    chmod 400 /home/A/.ssh/authorized_keys
    #将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限
    
    chattr +i /home/A/.ssh/authorized_keys
    #保证 authorized_keys 的权限不会被改掉
    
    chattr +i /home/A/.ssh
    #设置 ~./ssh 的 immutable 位权限,
    #防止重命名 ~/.ssh ,然后新建新的 ~/.ssh 目录和 authorized_keys 文件

    4. 尝试使用ssh-key登录服务器

    ssh -i  /user/.ssh /id_rsa  A@IP_address  
    #利用 SSH-Key 登陆普通账户 A ,看是否成功

    5.如果成功登陆 A, 编辑 服务器上面的sshd_config 文件

    su root #切换root账号
    vim /etc/ssh/sshd_config #按 i 进入编辑 确保(去掉注释#) RSAAuthentication yes #允许 RSA 认证 PubkeyAuthentication yes #允许公钥认证 PermitRootLogin no #禁止 ROOT 登陆 PasswordAuthentication no #禁止密码登陆 修改端口, 将 #Port 22 改为 Port 端口号数字 #改掉默认端口 按 esc 退出编辑,:wq #保存并退出 sshd_config service sshd restart #重启 SSH

     6.配置本地ssh config,方便登录。多个 ssh 账号需要配置,在 config 文件里隔行分开写就行

    vi ~/.ssh/config  #在私钥所在的.ssh 文件夹内新建一个 config 文件
    
    按 i 编辑,复制以下内容
    Host vps                      #这个名字随意,感觉像调用函数
    HostName IP_address           #IP 地址或服务器域名 
    Port XX                       #服务器端开放的 ssh 端口,第 7 步中改的端口
    User A                        #登录的用户名 
    IdentityFile ~/.ssh/ id_rsa   #使用的密钥文件密钥文件,本地私钥地址
    
    Host vps2
    …… 按 esc 退出编辑,输入:wq 退出并保存

    #ssh vps 就能直接登录vps啦!

    另外备注一点, github 用ssh下载的话,会发现permison denied!

    检测是由于默认是读取id_rsa 的秘钥,我已经命名成了github,所以找不到就一直连不上

    把代码加到缓存ssh-agent 的高速缓存里面

    ssh-add ~/.ssh/id_dsa

    来自: http://man.linuxde.net/ssh-add
     ssh-add  ~/.ssh/github 

    另外一种方法就是在ssh config里面添加我们的github信息

    Host personal  
        HostName github.com  
        User git  
        IdentityFile ~/.ssh/work_rsa

    测试 ssh - T git@personal  成功

    git clone git@personal:MorePainMoreGain/datetimepicker.git #MorePainMoreGain 用户名 datetimepicker 仓库名

    参考博客:

    ssh禁止root用户直接登录并修改默认端口;

    Linux 0 基础,在 VPS 上禁止 ROOT 账户,禁用密码登录,新建普通账户 A 并通过 SSH-Key 登陆 A 的方法 (欢迎指正:) OS: OS X 10.10.5

    linux普通用户获取管理员权限

  • 相关阅读:
    android中textview字数过长解决方法
    Android的EditText无法自动弹出输入法问题 .
    android中dip、dp、px、sp和屏幕密度
    android横竖屏切换 判断activity 是横屏还是竖屏
    设置ListView中图片的大小大方法 Android
    TextView属性详细分析
    ArcGIS API For Silverlight 实例分析
    Visual Studio 2008 里修改数据库表结构报错 解决办法
    未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集
    SuperMap iClient 6R for Silverlight 产品简介及Beta测试软件下载地址
  • 原文地址:https://www.cnblogs.com/djh-create/p/6897077.html
Copyright © 2020-2023  润新知