如何使用PuTTY创建SSH密钥以连接到VPS

公共和私有SSH密钥的好处

如果您的无头或远程VPS在互联网上可见,您应该使用公钥身份验证,而不是密码,如果可能的话。 这是因为与单独使用密码相比,SSH密钥提供了更安全的登录方式。 虽然密码可以最终与被破解的蛮力攻击 ,SSH密钥几乎是不可能用蛮力单独破译。 利用公钥认证,每个计算机具有(i)公共和(ii)私有“密钥”(两个数学上相关联的算法,实际上不可能破解)。

今天, OpenSSH的是类Unix系统如Linux和OS X默认的SSH实现基于密钥的身份验证是最安全的身份验证的几种模式与OpenSSH的使用,如普通的口令和Kerberos门票。 其他认证方法仅用于非常特定的情况。 SSH可以使用“RSA”(Rivest-Shamir-Adleman)或“DSA”(“数字签名算法”)密钥。 当SSH被发明时,这两种算法都被认为是最先进的算法,但是DSA近年来被认为不太安全。 RSA是新密钥的唯一推荐选择,因此本教程可以互换使用“RSA密钥”和“SSH密钥”。

当您登录到DigitalOcean VPS时,SSH服务器使用公钥以一种只能通过您的私钥“解锁”的方式“锁定”消息。 这意味着即使是最有能力的攻击者也不能窥探或干扰您的会话。 作为额外的安全措施,一些用户和大多数SSH程序以密码保护格式存储私钥,以提供一个时间窗口,您可以在您的计算机被盗或被破坏的情况下禁用被盗用的公钥。 由于这些原因,对于大多数人来说,公钥认证是比口令更好的解决方案。 事实上,通过不在私钥上使用密码短语,您将能够通过安全的自动登录(例如增量的异地备份)自动化部分配置管理,通过DigitalOcean API管理您的DigitalOcean资产,和更多。

基于密钥的SSH登录

您可以在任意数量的云服务器上保存相同的公钥,而您的私钥保存在您登录到服务器的客户端上。 然后,您可以禁用正常的用户名/密码登录过程,这意味着只有具有有效的私钥/公钥对的人才能登录; 使你的系统更安全,因为它将不会暴力攻击。

自动创建新Droplet

SSH密钥可以服务的另一个有用的目的是创建DigitalOceanDroplet。 如你所知,当你旋转一滴,你必须等待电子邮件与您的密码。 虽然这封电子邮件非常方便,但是有一种更安全(更快)的方式访问您的新云服务器,而不需要电子邮件。 这可以通过保存在你的公钥进行DigitalOcean控制面板 要做到这一点:

先决条件

本教程假定您熟悉DigitalOcean对指导如何登录到您用PuTTY滴(对于Windows用户)

PuTTY密钥生成器(又名PuTTYgen)

虽然PuTTY是SSH的客户端程序(除了Telnet和Rlogin之外),但它不是OpenSSH的端口或基于OpenSSH的端口。 因此,PuTTY没有本机支持读取OpenSSH的SSH-2私钥文件。 但是,PuTTY有一个名为PuTTYgen的协同合作伙伴(RSA和DSA密钥生成实用程序),可以将OpenSSH私钥文件转换为PuTTY格式; 允许您从Windows计算机连接到云服务器,增加SSH密钥提供的安全性。

的puttygen是一个免费的开源工具,可以从下载维护者的网站 PuTTYgen是您将使用来生成您的SSH密钥以供在PuTTY中使用。 开始,所有你需要做的是下载可执行文件(.exe),并将其保存在您将用于连接到您的VPS的计算机上,例如在桌面上。 不需要 “安装”的puttygen,因为它是一个独立的应用程序。

生成与PuTTY一起使用的OpenSSH兼容键

使用PuTTYgen生成一组RSA密钥:

  1. 通过双击其.exe文件启动PuTTYgen实用程序;
  2. 对于关键生成 ,选择SSH-2 RSA 类型 ;
  3. 在生成的键字段位的号码 ,请指定不能超过2048 4096(增加了位就更难破解用蛮力方法的关键);
  4. 点击Generate按钮;
  5. 四处移动你的鼠标指针在关键部分的空白区域,进度条下面(生成一些随机性),直至进度条满;
  6. 现在已生成私钥/公钥对;
  7. 关键的注释字段,输入您希望任何评论,以帮助您识别此密钥对,后来(如您的电子邮件地址,家庭,办公室等等) -关键的评论是在事件特别有用,你最终创建多个密钥对;
  8. 可选 :输入的密钥密码领域与重新键入密码相同的密码确认密码字段(如果您想不过用你的钥匙自动化进程,你应该创建一个密码);
  9. 点击保存公钥按钮和选择自己喜欢的任意文件名(有些用户创建自己命名my_keys计算机上文件夹);
  10. 点击保存私钥按钮和选择自己喜欢的任意文件名(可以将其保存在同一位置作为公开密钥,但它应该是,只有你可以访问和您不会失去位置!如果你失去了你键并已禁用用户名/密码登录,您将无法再登录!
  11. 在标粘贴公钥到的OpenSSH authorized_keys文件的文本字段中右键单击并选择全选 ;
  12. 在同一文本字段中再次右键单击并选择复制

注:PuTTY,OpenSSH等使用不同的格式公共SSH密钥。 如果SSH密钥复制:以“---- BEGIN SSH2 PUBLIC KEY ...”,这是错误的格式。 请务必仔细按照说明进行操作。 您的密钥应以“ssh-rsa AAAA ....”开头

保存服务器上的公钥

现在,你需要粘贴文件的〜/ .ssh / authorized_keys中的服务器上复制的公共密钥。

  1. 登录到目标服务器; 请参见 如何进入你用PuTTY滴登录(对于Windows用户)
  2. 如果您的SSH文件夹不存在,请手动创建:
  3. mkdir ~/.ssh
    chmod 0700 ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod 0644 ~/.ssh/authorized_keys
  4. SSH公用密钥粘贴到你的〜/ .ssh / authorized_keys文件( 请参阅 安装和使用的云服务器上Vim的文本编辑器 ):
  5. sudo vim ~/.ssh/authorized_keys
  6. 点击i的键盘和鼠标右键点击你的鼠标粘贴键。
  7. 要保存,点击键盘上的下列键(按顺序): Esc:wqEnter

创建PuTTY概要文件以保存服务器的设置

在PuTTY中,您可以创建(并保存)与各种SSH服务器的连接的配置文件,以便您不必记住并持续重新输入冗余信息。

  1. 双击其可执行文件启动PuTTY;
  2. PuTTY的初始窗口是会话类别(导航PuTTY的各种类别,沿窗口的左侧);
  3. 主机名称字段中输入您的VPS或它的完全限定域名(FQDN)的IP地址, 请参阅 如何设置与DigitalOcean主机名
  4. 输入端口字段的端口号(为了提高安全性,考虑改变你的服务器的SSH端口为非标准端口。 参见第五步初始服务器设置与Ubuntu 12.04
  5. 选择协议下的SSH;
  6. 沿窗口的左手侧,选择数据的子类别,下连接 ;
  7. 指定您打算使用,登录时到SSH服务器,其配置文件正在保存,在自动登录用户名字段的用户名;
  8. 展开SSH子类,下连接 ;
  9. 突出显示验证子类别,然后单击浏览按钮,在窗口的PuTTY的右手边;
  10. 浏览您的文件系统并选择您以前创建的私钥;
  11. 返回到会话类和此配置文件中保存的会议现场,如user@123.456.78.9或user@host.yourdomain.tld输入一个名称;
  12. 单击保存按钮的加载,保存或删除存储的会话区。

现在,您可以继续登录用户名 @ 1.2.3.4,你将不会被提示输入密码。 但是,如果您设置一个密码在你的公钥,你被要求在那个时候输入密码(你每次登录的时候,在未来)。

禁用用户名/密码登录

一旦您验证您的基于密钥的登录正在工作,您可以选择禁用用户名/密码登录以实现更好的安全性。 为此,您需要编辑SSH服务器的配置文件。 在Debian / Ubuntu的系统中,该文件位于/ etc / SSH / sshd_config中

sudo vim /etc/ssh/sshd_config

点击i的键盘上的按键和编辑的线条,下面引用:

[...]
PasswordAuthentication no
[...]
UsePAM no
[...]

要保存,点击键盘上的下列键(按顺序): Esc:wqEnter 现在,重新加载SSH服务器的配置:

sudo reload ssh

其他资源

一如既往,如果你需要帮助的步骤在这篇文章,寻找到DigitalOcean社区寻求帮助提出你的问题,下面。

文章提交者: 巴勃罗·卡兰萨
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏