简介:有时候我们出于安全的考虑需要禁止用户名密码登录,只允许密钥登录,这样可以防止别人尝试攻击你的服务器的用户名和密码了

环境:centos6.5

参考文章:https://wiki.centos.org/HowTos/Network/SecuringSSH

服务器步骤

    1.生成公钥和私钥:

      $ ssh-keygen -t rsa            

      然后copy默认的地址存放密钥,这将在您的(隐藏)〜/ .ssh目录中创建两个文件,名为:id_rsa和id_rsa.pub第一个:id_rsa是您的私钥,而另一个:id_rsa.pub是您的公钥。这个地方要注意下安装过程中会提示你输入密码,如果对于安全性不是很高很高可以跳过,一旦你设置了密码,后面密钥链接的时候还需要再输入密码

    2. 赋予密钥权限:    

  $ chmod 700  ~/.ssh
  $ chmod 600  ~/.ssh/id_rsa

    3. 将公钥(id_rsa.pub)复制到服务器并将其安装到authorized_keys列表中:

      $ cd ~/.ssh/

      $ cat id_rsa.pub >>  ~/.ssh/authorized_keys

    4.最后在服务器上设置文件权限      

    $ chmod 700  ~/.ssh
  $ chmod 600  ~/.ssh/authorized_keys

     如果在/etc/ssh/sshd_config(默认)中将StrictModes设置为yes,则需要上述权限。

    5.确保设置正确的SELinux上下文:

      $ restorecon -Rv ~/.ssh

    6.禁止用户名密码登录强制密钥登录:

      在打开/etc/ssh/sshd_config:

    #禁用密码认证强制使用密钥
      PasswordAuthentication no

     重启服务器生效

然后把id_rsa拷贝一份到我们的windows上,ssh登录的时候选择密钥登录就可以了,这样我们就可以只允许密钥登录了

    7.最后把.ssh文件下的3个文件都设置只读权限,我这里用的xftp直接右击更改权限就可以了,400权限(这里因为一些原因可能导致密钥被修改等等,例如安装git环境,上传代码等等,设置只读权限可以尽量保护下我们的密钥文件)

FQA:1.如果提示服务器没有对应的密钥,那可能是authorized_keys中导入的公钥有问题,暴力一点直接打开原来的公钥文件id_rsa.pub,直接copy,然后粘贴到authorized_keys中

 

posted on 2017-04-01 21:30  请叫我小路飞  阅读(696)  评论(0编辑  收藏  举报