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

  在使用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 [email protected]

  • 验证成功后关闭账号密码登录
    修改/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服务器)