跳到正文
TURNKEYGNU / LINUX
应用文档博客截图GitHubTurnKey Hub
文中文
EnglishEspañol中文日本語PortuguêsDeutsch
ưμ㼯A/从 Windows 生成 SSH 密钥对

文档

从 Windows 生成 SSH 密钥对

被医生所启发 线性 - 这是完全改写的,以遵守原作品的 CC BY-ND 3.0 (英语). 执照。

我们建议通过 Windows 的 SSH 连接 普蒂语Name。对于一般的 SSH 连接,您只需要单个主 Putty 执行器( putty.exe) 。但是要生成 SSH 键派( AKA " SSH 键" ) 您需要 Puttygen( puttygen.exe) 。 您可以下载单个可执行文件或一个zip或安装器(包括所有 PuTTY 工具)。 请检查 下载页面.

生成带有 PuTTYgen 的 SSH 键盘

独立的可执行文件(puttygen.exe)可以直接运行;否则会根据您从上面下载的选择而解析或安装软件.

  1. 最终(或者如果发射 puttygen.exe ) , 您会在键生成屏幕上找到自己。 默认值应该很好 。 除非你知道自己在做什么, 推荐你离开他们。

    单击 生成 按钮以启动生成进程。 这将生成一对密钥( 将键盘保存在键盘上) ; 一对密钥( 您在电脑上安全保存, 并且绝不与任何人共享 ) 和 一对公钥( 您将上传 ) 。 )),并输入您的服务器.

    generating a keypair

  2. 创建一个唯一且真正随机的密钥页需要用户交互。 因此, 您需要将鼠标移动到程序窗口中, 直到进度栏满了 。

    move mouse until generation is done

  3. 一旦生成, 公钥将显示在下一个窗口中。 确保您全部选择, 然后鼠标右键单击并选择“ 副本 ” 。

    the public key is displayed; copy it

  4. 您现在需要粘贴您的公钥, 供以后使用。 输入文本文件是一个很好的选项 。 一般来说,使用带有Linux文件的NotePad或WordPad(这两个文本编辑器都管理着Linux文件,并会造成错误)是坏做法. 我建议你使用免费的开源 备忘Pad++ (下载页面然而,目前仅存您的公钥, NotePad/WordPad将会起作用。请记住您保存的地方,因为您很快会再次需要它。

    copy the public ssh key to a text file

  5. 需要额外安全保护时,您也可以在您的私人密钥中添加密码句。 这意味着即使有人偷了你的私人钥匙 他们仍然需要破解你的密码 才能进入你的服务器 一般而言,这是建议采取的步骤,尽管它是可选的。

    密码句可以是任意的字母和数字串,应该具有独特性和不可理解性. 满句是很好的选择,因为很难破解,但相对容易记住. 最好把密码句写进记忆, 否则,你将在安全的地方记下来;你以后需要它! 如果您禁用 SSH 密码登录( 下方最后一节) 如果您忘记或丢失密码句, WILL NOT 可以恢复它 !

    如果您选择使用密码句,请输入并确认(通过在下面的行中再次输入).

    单击 保存私钥 按钮。这样可以保存私钥。

    optionally enter a passphrase, click save to proceed

  6. 默认文件位置很好, 除非有正当理由, jsut 离开。 给私钥文件命名并单击 保存( S).

    可以在多个服务器上使用相同的密钥,但也可以为不同的服务器使用不同的密钥. 如果您计划创建多个密钥, 请确保您使用不同的名字来避免写入密钥文件 。 记下私钥的名字和位置 稍后你就会需要了

    save the private key

将您的 SSH 公钥添加到枢纽

如果你在使用 枢纽 然后您可以在那里添加您的公钥。 那么您启动的任何新服务器都会自动获取您的公钥。 酷吧?

如果你没有用 枢纽,你需要跳过 到下一节。

  1. 登录您的 Hub 账户并转到 "SSH 授权密钥" Tab. 粘贴您的公钥( 如以下所示), 点击" Update".

    enter the public key into the Hub
  2. 现在启动一个新的服务器,并遵循下面的指示,使用您的新密钥登录到 PuTTY 中 。 如果您想要连接到现有的 Hub 服务器( 不仅仅是新服务器), 您还需要完成所有“ 手动添加您的 Public SSH 密钥到您的服务器” 指令 。 下图。

    注意:如果您正在使用 AWS MarketPlace, 您也可以通过 AWS 控制台将您的公钥 SSH 添加到某个特定区域 。 该地区所有未来的服务器自动获得你的钥匙(类似于Hub的操作方式). 如果您想要在多个区域使用相同的密钥, 您需要手动将它添加到每个区域。 这样做的确切步骤超出了此文件的范围 。

配置 PuTTY 连接到您的服务器

所以现在你需要设置 PuTTY (puty.exe) 来使用您的私人密钥.

  1. 发射PuTTY (puty.exe).
  2. 从左窗格中选择 连接 >> SSH 密码 >> 认证。您可能需要单击“+”来扩展选项。

    in the left pane, select connections; auth; SSH

  3. 默认应该很好, 尽管您需要设置私有密钥文件的位置( 从步骤 # 6“ 使用 PuTTYgen 创建 SSH Keypair ” )。 要么单击 浏览 按钮并导航到私钥文件,或者在框中键入完整文件路径。

    enter the private ssh key location

  4. [可选] 您可以设置您想要连接的用户名 连接 >> SSH 密码 >> 数据。一般情况下,它会是“root”(不使用引文),除非您添加了替代用户。如果您使用亚马逊市场定位实例,它会是“admin”。

    如果您不设置此选项, PuTTY 将在 SSH 会话中询问用户名 。

  5. 要建立会话,请点击 会话 下划线 类别 列表中。输入您的服务器的 FQDN 或 IP 地址。再次,所有其他默认都应当很好。

    [可选] 您可以点击此连接将它保存为默认值 保存( S)。或者,您可以通过在“定义”中输入一个名称来保存它,作为许多可能的联系之一。 保存的会话 文本字段和单击 保存( S)。下次使用 PuTTY 时,它会自动加载“ 默认设置”, 以加载一个替代配置, 选择名称并单击 装入.

    save connection info

  6. 要建立连接,请单击 打开.

    如果您在Hub中保存了您的公用SSH密钥(根据上面"添加您的公用SSH密钥到Hub"),而这是您从那时起推出的服务器,那么您就可以出发了. 您可能需要输入用户名( 如果您跳过上面的步数 # 4) 。 如果您设置了密码句( 步骤 # 5 "用 PUTTYgen 创建 SSH Keypair"), 您需要按下提示输入 。

    如果您正在连接到一个非 Hub 服务器; 或者在将您的 SSH 公钥添加到 Hub 之前创建的 Hub 服务器, 那么您需要手动将您的密钥添加到 。遵循下面“手动添加您的 SSH 公钥到您的服务器” 一节中的指令。

手动将您的公用 SSH 密钥添加到您的服务器

直接从上面的“配置 PuTTY 连接到您的服务器” 部分开始:

  1. 当您连接到您的服务器时, 您会被提示输入您的登录名( 可能是“ root ”) 和密码( 您为服务器设置的“ root” 密码) 。

    一旦您登录到您的服务器, 请创建 .ssh 目录( 在您的主目录中), 创建空 authorized_keys ,并设置访问权限,只有您的用户才能读取或写入:

    mkdir ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod -R 700 ~/.ssh
    
  2. 编辑新创建的 authorized_keys 文档中您最喜欢的 Linux 文本编辑器。 我会用纳米作为示例 :

    nano ~/.ssh/authorized_keys
  3. 从工作站粘贴公钥内容到 authorized_keys 文件(从步骤4“用 PUTTYgen 创建 SSH Keypair ” ) 。请确保您在退出时保存文件。

  4. 离开PutTY。

  5. 打开 PUTTY (puty. exe) 和 装入 您保存的会话( 从步骤 # 4“ 配置 PuTTY 连接到您的服务器 ” )。 如果您没有保存会话, 请按照“ 配置 PuTTY 连接到您的服务器 ” 重制 。 您可能需要再次输入用户名( 如果您跳过步骤 # 4“ 配置 PuTTY 连接到您的服务器 ” ) 。 如果您设置了密码句( 步骤 # 5 "用 PUTTYgen 创建 SSH Keypair"), 您需要按下提示输入 。

    您现在应该使用 SSH 键盘连接到您的服务器 ! :

    如果它要您的密码( 即不是您的密码) , 那么在添加您的 SSH 公钥时会出错 。 请再尝试一次以上步骤 。 如果还不行 请给我们发信 支助论坛

禁用密码登录 [可选]

作为保护您的 应用设备 的额外步骤, 您现在可以禁用密码 SSH 登录 。

重要内容 : 只有成功登录您的 SSH 键盘时才会这样做 ! 如果您没有正确设置您的密钥页日志( 或者您丢失您的私钥), 您将被锁出您的服务器, 并且有 密码找不到了! 你被警告过!

  1. 使用 PuTTY 登录您的服务器。 请确定 DID NOT 需要使用您的密码。 需要您的 SSH 密钥密码句( 如果您设置了密码句) 。

  2. 在您最喜欢的文本编辑器中打开 SSH 配置文件, 我会用纳米作为示例 :

    nano /etc/ssh/ssh_config
  3. 寻找一条线,写着:

    #   PasswordAuthentication yes
  4. 将"#"从行首删除,并将"是"改为"否",该行现在应该这样:

       PasswordAuthentication no

    保存文件并退出纳米

  5. 要应用新的配置, 重新启动 SSH 服务器 :

    service ssh restart
  6. 就是这样! 您服务器上的 SSH 服务现已锁定, 只接受对应 公用 SSH 密钥的私钥 。 ~/.ssh/authorized_keys

最终说明

  • 确保您的私钥SSH安全. 我建议把它复制到USB棒上, 放在安全的地方,
  • 如果您设置了密码句, 请务必不要忘记它。 如果您写下来, 请也注意安全 。 不要存储在您私藏 SSH 密钥的同一位置 。
  • 除非您完全满意您可以登录 SSH 密钥,否则不要禁用 SSH 密码登录 。
  • 如果您确实禁用 SSH 密码登录, 请确保您仍然保留您的“ root” 密码 。 如果您离开 Webmin 运行, 在最糟糕的情况下, 您可以通过此程序从丢失的 SSH 密钥( 或者被遗忘的密码) 中恢复( 这将需要您的根密码登录) 。
  • TURNKEYGNU / LINUX

    无需从零开始,掌控自己的基础设施。

    探索 TurnKey
    关于文档常见问题博客GitHub
    自由开源默认安全随时可部署