使用SSH密钥对登录Ubuntu服务器

作者: SmartMou | 来源:发表于2018-12-05 10:23 被阅读2次

      在使用VPS的过程中,开放账户密码登录或是root登录,会存在一定的风险,而且每次都需要输入密码,操作十分的不Fashion。所以,这里介绍ssh使用RSA密钥来实现免密登录远程主机的设置方式。

    • 首先需要登录到Server
      使用如下命令生成密钥对,默认生成目录是~/.ssh
      $ ssh-keygen -t rsa
      $ # 一路回车即可
      

      在~/.ssh中会生成两个文件,id_rsa(私钥),id_rsa.pub(公钥)。

    • 将公钥写入信任列表中
      查看在~/.ssh中是否存在authorized_keys文件。

      $ # 若是不存在authorized_keys文件,新建即可
      $ # touch authorized_keys
      $ cat id_rsa.pub >> ~/.ssh/authorized_keys
      $ chmod 600 ~/.ssh/authorized_keys
      $ chmod 700 ~/.ssh
      
    • 转换私钥格式并导出
      使用puttygen工具将私钥id_rsa转换为private-openssh格式。

      $ sudo apt install putty-tools
      $ puttygen ~/.ssh/id_rsa -C "Sever" -o ~/.ssh/id_rsa.pem -O private-openssh
      $ chmod 400 ~/.ssh/id_rsa.pem
      

      使用scp命令或者WinSCP,将~/.ssh/id_rsa.pem下载分到本地,以后就可以使用密钥对免密登录服务器了。

    ssh -i xxx.pem username@your.server.IP.addr

    • 验证成功后关闭账号密码登录
      修改/etc/ssh/sshd_config,将参数修改为和下面一样,保存退出,其它先不要动。

    RSAAuthentication  yes
    PubkeyAuthentication  yes
    AuthorizedKeysFile  .ssh/authorized_keys

      重启sshd服务。

    $ sudo service sshd restart
    

      本地使用私钥进行登录服务器,不成功请从头检查一遍,成功在服务器上关闭账号密码登录功能。第一个是关闭账户密码登录,第二个是关闭root账户登录,按需选择。

    PasswordAuthentication  no
    PermitRootLogin  no

      重启sshd服务即可,记得保存好你的私钥。

    相关文章

      网友评论

        本文标题:使用SSH密钥对登录Ubuntu服务器

        本文链接:https://www.haomeiwen.com/subject/zsficqtx.html