putty 形式の秘密鍵からOpenSSH形式の公開鍵ペアを作成

パスフレーズを知っている putty 形式の秘密鍵を元に Linux 系環境で OpenSSH 形式の秘密・公開鍵ペアを作成する方法をメモ。

puttygen のインストール

putty 形式から OpenSSH への変換には puttygen を使う。
Linux 環境は各ディストリビューションが putty パッケージの1プログラムとしてパッケージ化しているので、インストールする

$ sudo apt-get install putty # Ubuntu 系
$ sudo yum install putty     # RedHat 系

鍵形式の変換

$ puttygen keyfile -O output-type -o output-file で変換を行う。
output-type には

  • 秘密鍵の場合は private-openssh
  • 公開鍵の場合は public-openssh

を指定

$ puttygen ~/.ssh/id_rsa.ppk -O private-openssh -o ~/.ssh/id_rsa
Enter passphrase to load key:
$ puttygen ~/.ssh/id_rsa.ppk -O public-openssh -o ~/.ssh/id_rsa.pub

-p オプションでパスフレーズを一緒に変更することもできる。

$ puttygen id_rsa.ppk -P -O private-openssh -o id_rsa
Enter passphrase to load key:  # current passphrase
Enter passphrase to save key:  # new passphrase
Re-enter passphrase to verify: # new passphrase

puttygen で変換後に $ ssh-keygen -f id_rsa -p でパスフレーズを変換することもできる。

鍵の形式を確認

putty形式

$ head id_rsa.ppk
PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: rsa-key-20130322
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABJQAAAIEAlQ7a2ThrCpuPa3bm9/ddGMWAGj3SENvjy0sS
...
...
KcYqsd0=
Private-Lines: 8
tSebk/7UBHUJoxk5bhFHJrJHrVgQJUM0j+2qa8kDZ9rknjnXTIKNybUswXJoDwau
...

OpenSSH形式

$ head id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,0000000000000000

zvQzhKZS7JRvb58eK7oIItvEMVHFrVzgqDNaVY6pN6nvm3CYEeISb1nn3CEAfm11
...

公開鍵認証の確認

変換した鍵のペアで認証できることを確認。

公開鍵を ssh-copy-id でリモートサーバに登録

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname
The authenticity of host 'hostname (192.168.10.5)' can't be established.
RSA key fingerprint is 06:37:c4:9f:be:fd:c2:ad:ca:c3:2a:f0:65:74:9f:c3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hostname' (RSA) to the list of known hosts.
username@hostname's password:
Now try logging into the machine, with "ssh 'username@hostname'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

登録した鍵で認証できることを確認

$ ssh username@hostname
Enter passphrase for key '/home/username/.ssh/id_rsa':
Last login: Fri Mar 14 22:12:44 2014 from 192.168.10.2
[username@hostname ~]$

References

Tagged with: , ,
Posted in linux

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners. docs.google.com/presentation/d… /cc @inwyrd 1 week ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 3 weeks ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 3 weeks ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 6 months ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book: amazon.com/Site-Reliabili… It's about managing produc… 9 months ago
%d bloggers like this: