生活哲学

Linux 中的 PuTTYgen - SSH 密钥生成器

PuTTYgen 是用于 Linux 版 PuTTY 的 SSH 密钥创建工具。它的工作原理类似于 OpenSSH 中的 ssh-keygen 工具。

它的基本功能是创建公钥和私钥对。 PuTTY 以自己的格式将密钥存储在.ppk 文件中。但是,该工具也可以转换密钥格式。

设置

在某些 Linux 发行版中,PuTTYgen 工具需要与 PuTTY 客户端分开安装。例如,在 Debian Linux 中,以下命令将安装它:

 sudo aptitude install putty-tools 

为认证创建一个新的密钥对

要从命令行创建新的密钥对进行身份验证,请使用以下命令:

 puttygen-t rsa-b 2048-C "user@host"-o keyfile.ppk 

您应该为密钥文件使用密码以进行交互使用。密钥文件用于自动化(例如,WinSCP 通常有一个空白密码)。

在服务器上安装公钥作为身份验证密钥

使用 Tectia SSH 和 OpenSSH 服务器,通过创建公钥、将公钥复制到服务器并将公钥添加到 来配置对帐户的访问~/.ssh/authorized_keys 文件。

要提取公钥,使用:

 puttygen-L keyfile.ppk 

然后登录服务器,用你喜欢的编辑器编辑authorized_keys文件,然后用上面的命令将公钥剪切粘贴到authorized_keys 文件。保存存档。将 PuTTY 配置为使用您的私钥文件 (keyfile.ppk)。然后检查登录是否正常。

更改密钥的密码

建议您定期重新创建和更改所有 SSH 密钥。 Universal SSH Key Manager 可以自动执行此操作。更改密码是必须的,没有什么可以替代的。这些说明还可用于在生成的密钥中添加密码,而无需密码。

使用以下命令更改密码:

 puttygen 密钥文件.ppk-P 

这将提示您设置新密码并使用新密码将结果写回 keyfile.ppk

将私钥导出到 Tectia SSH 或 OpenSSH

将私钥从 PuTTY 导出到 Tectia SSH 或 OpenSSH 是非常罕见的。但是,这里仍然描述了这个过程,因为有时它可能是必要的。例如,当应用程序使用云切换到 Linux 时,文件传输的目标服务器无法轻松重新配置以更改经过身份验证的密钥。

SSH 和 OpenSSH 都支持私钥 OpenSSH 文件格式,因此请使用此处描述的密钥文件格式。 Tectia SSH 还支持许多其他格式。

要为 Tectia 或 OpenSSH 转换现有的 PuTTY 私钥,请使用以下命令:

 puttygen keyfile.ppk-O private-openssh-o keyfile 

然后将密钥文件复制到将运行 Tectia 或 OpenSSH 的主机上的 .ssh 文件夹中。

命令行选项

PuTTYgen的基本命令行:

  1. 指定要读取的密钥文件或要创建的密钥类型和大小。
  2. 要执行的可选操作(例如,更改密码)
  3. 可选类型和输出文件。

基本命令行是:

 puttygen [-t keytype [-b bits] [-q] |密钥文件] 
[-C 新注释] [-P]
[-O 输出类型 |-p |-l |-L]
[-o 输出文件]

选项有:

  1. keyfile:修改现有密钥时要读取的现有密钥文件的名称。
  2. -t keytype :指定要创建的密钥类型。可接受的值包括 rsa 和 dsa。 rsa1 也支持创建旧版 SSH-1 密钥,但从不需要它们。
  3. -b bits :指定密钥中的位数。对于 DSA 密钥,1024 是正确的大小。对于 RSA 密钥,建议使用 2048 甚至 4096 位。
  4. -q:删除密钥生成过程中的进度通知。
  5. -C new-comment :指定注释来描述键。注释不影响键的操作。您可以为新键或现有键指定附加注释以更改其注释。通常,注释会用来标识自己的主呃,但是因为任何值都可以在没有特定基数的情况下指定。
  6. -P :请求更改密钥的密码。该工具将提示创建新密码。无法在命令行上指定密码。密码将用于加密私钥。
  7. --old-passphrase-file file :指定一个文件来读取密钥的旧密码。仅当使用受密码保护的现有密钥时才需要这样做。
  8. --new-passphrase file:指定密钥的新密码。这可以在创建新密钥或使用 -P 选项更改密码时使用。
  9. -O output-type :指定导出的内容。默认情况下,会输出私钥。可以指定以下值:

-private : 私有 PuTTY 密钥格式的私有密钥,为.ppk 文件。

-指纹:导出key的key。指纹可唯一标识密钥,例如,可以通过电话读取以确保密钥就是所提及的内容。

-public :保存私钥对应的公钥。对于 SSH2 密钥,公钥将以 RFC 4716 指定的格式导出。例如,Tectia SSH 支持这种格式。该格式的键如下所示:

----BEGIN SSH2 PUBLIC KEY----评论:user@example.comAAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRb YYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ 5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff +=----END SSH2 EHtWshahu3WzBdnGxm5Xoi89zcE PUBLIC KEY----

-public-openssh : 以 OpenSSH 的专有格式保存公钥。 Tectia SSH 也支持这种格式,如下所示:

 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN + Mh3U/3We4VYtV1QmWUFIzFLTUeegl1Ao5/QGtCRGAZn8bxX9KlCrrWISIjSYAwCajIEGSPEZwPNMBoK8XD8Q=cow@example.com

-private-openssh : 将私钥转换为 OpenSSH 格式。这只能用于 SSH2 密钥。

-private-sshcom : 将私钥转换为 Tectia SSH 使用的格式。

-private-openssh :包括 OpenSSH 使用的格式的私钥。 Tectia SSH 也支持这种格式。

  1. -l 就像指纹-O
  2. -L类似于-O public-openssh
  3. -p 类似于 -O public
  4. -o output-file :指定输出文件。创建新密钥时需要此选项。如果没有,在更改密码或注释时,原始文件将默认被覆盖。导出公钥或指纹时,默认为标准输出。
  5. -h--help :输出帮助总结文本和用法。
  6. -V--version :输出工具的版本号。
  7. --pgpfp:导出用于新版 PuTTY 的 PGP 主密钥的指纹。

查看更多:

  1. 建立点对点 SSH 连接
  2. 如何使用 Cygwin 在 Windows 7 上访问 SSH
  3. 使用 SSH 命令行备份整个网站

相关资讯

评论

回复