使用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 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服务即可,记得保存好你的私钥。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 云服务商 青云[https://docs.qingcloud.com/] 提供的服务和编写的 使用 SSH 密钥远...
    michael_jia阅读 34,342评论 2 1
  • 我们知道如果要向远程服务器传输数据和操作必须输入用户名和密码远程登录服务器 ,或用FTP等协议,都需要权限控制。 ...
    欢醉阅读 5,048评论 1 4
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,688评论 0 20
  • 加密算法 对称加密算法 加密和解密使用同一个密钥 DES、3DES、AES、Blowfish、Twofish、ID...
    毛利卷卷发阅读 5,550评论 0 4
  • 自然特征:性别,年龄,地域,教育水平,星座 社会特质:婚姻,家庭,社交渠道,职业 偏好特征:兴趣爱好,使用APP/...
    少卿阅读 3,165评论 0 0