AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 15378
Accepted
Assaf Lavie
Assaf Lavie
Asked: 2010-11-30 07:12:26 +0800 CST2010-11-30 07:12:26 +0800 CST 2010-11-30 07:12:26 +0800 CST

如何安装 PuTTYgen 生成的 SSH 私钥?

  • 772

我通过将 PuTTYgen 生成的公钥添加到authorized_keys文件中来设置我的 Linux 服务器以接受来自我家 PC 的连接。

现在我正在尝试连接到同一台机器,但这次是从另一台 Ubuntu 机器上。我必须使用相同的私钥(出于奇怪的原因,不要问..)而且我不太明白如何在我的客户端 Ubuntu 上安装它。

我必须将其转换为其他格式吗?

ssh openssh putty
  • 9 9 个回答
  • 257927 Views

9 个回答

  • Voted
  1. Andrew Stacey
    2010-11-30T12:25:12+08:002010-11-30T12:25:12+08:00

    巧合的是,我不得不这样做。您确实需要将密钥转换为 OpenSSH 格式。这样做的命令是:

    ssh-keygen -i -f puttygen_key > openssh_key
    

    然后您可以像使用普通 SSH 密钥一样复制openssh_keyin的内容。.ssh/authorized_keys

    该-i选项是告诉ssh-keygen进行转换的选项。该-f选项告诉它在哪里可以找到要转换的密钥。

    这适用于未加密的密钥。公钥未加密,但私钥可能已加密。我不确定是否有办法解密私钥,转换它,然后重新加密它。正如其他答案所暗示的那样,使用新密钥可能会更容易(我建议使用ssh-agent尽管这与当前问题正交)。

    • 41
  2. hheimbuerger
    2010-12-10T14:53:23+08:002010-12-10T14:53:23+08:00

    Andrew Stacey 解释了如何在 Linux 上将密钥转换为 OpenSSH 格式。

    如果您想在 Windows 上执行相同的操作,请按照以下步骤操作:

    1. 启动 PuTTYGen。
    2. 点击“加载”。
    3. 选择您的私钥并输入密码。
    4. 从“转换”菜单中,选择“导出 OpenSSH 密钥”。
    5. 选择目标文件名。
    • 31
  3. Best Answer
    theTuxRacer
    2010-11-30T08:18:15+08:002010-11-30T08:18:15+08:00

    我不确定您的私钥是否可以在 ubuntu 中使用,但值得一试。只需复制密钥以/home/yourName/.ssh/将私钥命名为id_rsa,将公钥命名为id_rsa.pub。

    如果这不起作用,那么您可以使用创建自己的 ssh 密钥对ssh-keygen并将新的公钥复制到服务器,然后 ssh 如下

    ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>
    

    没玩过,不过听说ssh-agent也可以用来管理ssh-keys。

    • 29
  4. user18617
    2011-05-26T23:32:27+08:002011-05-26T23:32:27+08:00

    如何在 Ubuntu 中将 Putty 密钥对重新用作 OpenSSH 密钥:

    apt-get install putty-tools #Install Putty tools in Linux
    cd /my-putty-keys
    puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
    ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub
    

    由于步骤 4 的目的是将您的公钥添加到 *~./ssh/authorized_keys*,因此您可以像这样使用您的 Putty 密钥,而不是执行 4 作为中间步骤:

    puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys
    
    • 27
  5. Martin Prikryl
    2015-02-13T04:14:19+08:002015-02-13T04:14:19+08:00

    PuTTY/PuTTYgen 使用自己专有的密钥对格式。它在 Linux 上不起作用,在 Linux 上,密钥的 OpenSSH 格式占主导地位。

    • 在 PuTTYgen 中,您可以直接查看(并复制 + 粘贴) OpenSSH文件使用的格式的公钥。authorized_keys

    • 您可以使用按钮保存公钥以格式 (RFC 4716)保存公钥。.pub在 Linux 上,该文件通常命名为id_rsa.pub(或id_dsa.pub)。但这通常是不需要的。

    • 使用Conversions > Export OpenSSH 密钥以OpenSSH 格式导出私钥。在 Linux 上,该文件通常命名为id_rsa(或id_dsa)并存储在.ssh文件夹中。

    请参阅官方使用 PuTTYgen,PuTTY 密钥生成器。

    您还可以使用 Linux 版本的 PuTTYgen 进行转换。Linux 版本是命令行,与 Windows 版本相反。

    puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa
    

    请参阅 Linuxputtygen手册页。

    • 9
  6. P-Kumar
    2016-12-07T22:12:00+08:002016-12-07T22:12:00+08:00

    我找到了一个更清晰的解决方案。

    在puttygen创建密钥时,导航到顶部菜单 - 转换并单击导出 openssh 密钥

    文件内容将以

    -----BEGIN RSA PRIVATE KEY----- 
    
    -----END RSA PRIVATE KEY-----
    
    • 对于 root 用户 将该密钥文件复制到/root/.ssh/asid_rsa或id_dsa

    • 对于其他用户 将该密钥文件复制到/home/user/.ssh/asid_rsa或id_dsa

    笔记 :

    1. 无需编辑authorized_keys。
    2. 我正在使用亚马逊 Linux
    3. 文件权限 0600
    • 3
  7. ErnestA
    2013-02-22T19:58:48+08:002013-02-22T19:58:48+08:00

    * *请注意并确保您可以通过控制台访问该框,因为如果您操作不当,您将无法再次通过 ssh 登录,直到您从控制台修复它。

    这个过程比你想象的要容易得多。再次加载您在 puttygen 中生成的公钥/私钥对。在 puttygen 中,您会注意到屏幕中间有一个窗口,上面写着:“用于粘贴到 Open SSH authorized_keys 文件中的公钥:”。

    突出显示框的全部内容,然后按 control-c 复制它。

    SSH 进入你的 linux 机器并将其粘贴到“/home/username/.ssh/authorized_keys”文件中。我更喜欢使用 nano,只需右键单击即可将其粘贴。确保所有内容都保持在一行上。

    根据需要修改 /etc/sshd_config 文件并重新启动 sshd 服务:“service ssh restart”

    如果您需要一个示例 sshd_config 文件,请告诉我,我可以发布我的。

    我已经在 Ubuntu 8.04、10.04 和 12.04 LTS 服务器上完成了这项工作,并且运行流畅。

    • 1
  8. George Valkov
    2020-06-09T05:44:56+08:002020-06-09T05:44:56+08:00

    安装 OpenSSH 私钥的最简单方法是创建或编辑~/.ssh/config,如下所述。您需要将 PuTTY 私钥导出为 OpenSSH 密钥。

    在一个客户端上使用多个 SSH 私钥的最佳方式

    Host myshortname realname.example.com
        HostName realname.example.com
        IdentityFile ~/.ssh/realname_rsa # private key for realname
        User remoteusername
    
    Host myother realname2.example.org
        HostName realname2.example.org
        IdentityFile ~/.ssh/realname2_rsa  # different private key for realname2
        User remoteusername
    

    使用 OpenSSH 时,这适用于 Linux、macOS、Windows、GIT。

    • 1
  9. binish
    2019-06-08T16:27:25+08:002019-06-08T16:27:25+08:00

    我不确定这个线程是否仍然处于活动状态,但我偶然发现了现在支持 Ubuntu 内核的 Windows 10 周年纪念版的类似问题。我以前使用 Putty 连接到 Linux 机器。要以 linux 格式生成 id_rsa,请使用 puttykeygen 并加载您的 putty 私钥,然后单击转换并选择第二个选项。

    Putty KeyGenerator 转换

    打开新生成的密钥文件并复制其所有内容,确保您的内容以-----BEGIN RSA PRIVATE KEY-----开头并以-----END RSA PRIVATE KEY-----结尾

    vi id_rsa 在你的 ~/.ssh 目录中并粘贴复制的内容,这是必需的,因为 linux 否则将无法理解文件的内容。

    就是这样,尝试 ssh 到远程服务器,它应该可以工作。

    • 0

相关问题

  • Gnome-terminal 快捷方式在选项卡中打开多个 ssh 连接

  • 通过 SSH 禁用密码访问?

  • ssh 如何使用多个私钥?

  • 如何通过一个 SSH 连接拥有多个终端会话?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve