zoukankan      html  css  js  c++  java
  • 如何为DigitalOcean上的服务器配置SSH密钥

      本指南适用于mac OS和Linux,windows用户请绕道。

      通常,当你启动DigitalOcean droplets时,只要过程完成,你会收到一封电子邮件,让你知道droplets的IP地址和密码。尽管此电子邮件非常方便,但是如果可以无需电子邮件即可获得访问服务器的更安全(更快)的方式那肯定就再好不过了这可以通过设置SSH密钥来完成。

      SSH密钥是计算机与服务器之间的密钥对,如果服务器在您登录的计算机上看到匹配的密钥,则允许服务器进行连接。尽管密码最终可能通过强力攻击破解,但SSH密钥几乎不可能通过强力破解。您可以通过将计算机的SSH密钥添加到控制面板,使用已经在其上设置的SSH密钥创建新的DigitalOcean droplets。

    第一步 - 创建RSA密钥对

      第一步是在客户机上创建密钥对(一般就是本机):

    ssh-keygen
     

    第二步 - 存储密钥和密码

      一旦输入了Gen Key命令,你将会得到更多的问题:

    输入保存密钥的文件(/demo/.ssh/id_rsa):

      可以在这里按回车,将文件保存到用户主目录(在这种情况下,我的示例用户名为demo)。

    输入密码(没有密码时为空):

      这是用于生成SSH的密码,推荐用一个好记的密码,整个密钥生成过程如下所示:

    ssh-keygen
    生成公钥/私钥rsa密钥对。
    输入保存密钥的文件(/demo/.ssh/id_rsa): 
    输入密码(没有密码时为空): 
    再次输入相同的密码: 
    您的身份已保存在/demo/.ssh/id_rsa中。
    您的公钥已保存在/demo/.ssh/id_rsa.pub中。
    关键指纹是:
    4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo @ a
    密钥的randomart图像是:
    +  -  [RSA 2048] ---- +
    | .oo。|
    | oE |
    | +。o |
    | = =。|
    | = S =。|
    | o + = + |
    | o + o。|
    | o |
    | |
    + ----------------- +

      公钥现在位于/demo/.ssh/id_rsa.pub,私钥(标识)现在位于/demo/.ssh/id_rsa中

     

    第三步 - 复​​制SSH密钥

      一旦设置了SSH密钥,就可以将其复制到控制面板中。打开SSH页面,然后单击创建新的SSH密钥按钮。

      应该出现一个弹出窗口

    SSH密钥弹出

      小方框中写入创建名称(例如“家用计算机”)

      大方框中复制并粘贴在步骤2中创建的公钥。

      以下命令可以得到密钥:

     cat〜/.ssh /id_rsa.pub

    ”SSH

    点击保存。

     

    第四步 - 打开一个新的服务器

      前面的步骤解释了如何使用预先安装的SSH密钥设置服务器。但是,不能使用控制面板将按键添加到已创建的 droplets。

      为了向预先存在的服务器添加其他键,可以使用SSH粘贴键:

    cat ~/.ssh/id_rsa.pub | ssh root@[your.ip.address.here] "cat >> ~/.ssh/authorized_keys"

      在实际启动新服务器时,从“Create a Droplet”屏幕中可以选择已有的密钥,选择一个安装到服务器上就可以

    SSH快捷键

     

    第五步 - 连接服务器

      使用预先安装的SSH密钥创建服务器后,可以按照与之前相同的方式连接到服务器:

    ssh root@[your.ip.address.here]

      但是,现在,从共享密钥对的计算机进行连接时,不需要输入密码即可登录到root用户。

    主机键警告

      如果在创建要连接的服务器之前直接摧毁了服务器,则可能会看到如下消息:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
    @警告:远程主机标识已更改!@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
    它可能是某人正在做某事的地方!
    现在有人可能会窃听你(中间人攻击)!
    主机密钥刚刚更改也是可能的。
    ...

    如果是这种情况,新服务器可能具有与旧的相同的IP地址,但是具有不同的主机SSH密钥可以通过运行以下命令来删除警告,方法是从系统中删除旧的主机密钥:

    ssh-keygen -R [your.ip.address.here]

      现在尝试再次连接到服务器。

     

    步骤六锁定根SSH访问仅密钥

      在确认现在可以以root用户身份登录到服务器而没有提示输入密码后,可以禁用root用户的密码登录。这使得服务器更安全,因为没有人可以暴力破解SSH密码。

    有必要编辑服务器的SSHd配置/etc/ssh/sshd_config并更新以下行以读取:

    PermitRootLogin 不带密码

    现在有必要重新启动或重新启动sshd进程以重新读取新配置。这可以通过以下方式完成:

    #ps auxw | grep ssh
    USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND681   0.0 0.1 49948 2332?Ss 2012 3:23 / usr / sbin / sshd -D
    #kill -HUP 681

    现在,服务器的root登录名受到保护,可以通过尝试以root用户身份从未共享密钥的系统向此服务器进行SSH测试,将自动踢出而不会提示输入root密码。

     

  • 相关阅读:
    Git 简易手册
    【Swift】UILabel 设置内边距
    【iOS】屏幕适配之NSLayoutConstraint
    【Swift】TTTAttributedLabel使用小记
    【iOS】Alamofire库在iOS7下设置Head无效的问题
    【iOS】在Swift中使用JSONModel
    【读书笔记】100个Switf必备tips
    【读书笔记】长尾理论
    【读书笔记】结网
    嗯,农民伯伯的2014就是这些
  • 原文地址:https://www.cnblogs.com/zhuminghui/p/9001131.html
Copyright © 2011-2022 走看看