私はPuTTYgenを使用してキーペアを生成し、Pageantを使用してログインしていたので、システムの起動時に一度だけパスフレーズを入力する必要があります。
Linuxでこれを実現するにはどうすればいいですか。私はkeychain
を聞いたことがありますが、私はそれが異なるキーペアフォーマットを使用していると聞いています - 私は私のWindowsキーを変更したくないです。
puttygen
はあなたの秘密鍵をOpenSSH互換のフォーマットにエクスポートすることをサポートしています。その後、OpenSSHツールを使用して公開鍵を再作成できます。
Conversions->Export OpenSSH
に行き、あなたの秘密鍵をエクスポートしてください~/.ssh/id_dsa
(またはid_rsa
)にコピーします。ssh-keygen
を使用してRFC 4716バージョンの公開鍵を作成します。
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
RFC 4716バージョンの公開鍵をOpenSSH形式に変換します。
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
あなたが持っているのがPuTTYスタイルのフォーマットのユーザーからの公開鍵であるなら、あなたはそのように標準のopensshフォーマットに変換することができます:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
私はこれを忘れているのでそれをここに書くつもりです。非オタク、歩き続けるだけ。
Windowsでキーを作成する最も一般的な方法は、PuTTY/Puttygenを使用することです。 Puttygenは、Linuxの秘密鍵をPuTTY形式に変換するためのきちんとしたユーティリティを提供します。しかし、対処されていないのは、puttygenを使用して公開鍵を保存すると、Linuxサーバーでは機能しないということです。 Windowsはいくつかのデータをさまざまな領域に配置し、改行を追加します。
解決策:puttygenで鍵のペアを作成する際に公開鍵の画面に移動したら、公開鍵をコピーして拡張子.pubの付いたテキストファイルに貼り付けます。あなたはこのようなポストを読んで欲求不満のsysadmin時間を節約します。
しかし、sysadminsは、キーが見つからないこと、パスワードを試すことを除いて、認証ログにエラーメッセージが表示されないような変わったキーファイルを必ず入手します。たとえ他の誰かの鍵がうまく機能していても、あなたはこの鍵を15回ユーザーに送り返しました。
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
既存のputtygen公開鍵をOpenSSH形式に変換する必要があります。
次の図に示すように、 PuTTYgen (mineは0.64)の新しいバージョンでは、OpenSSH公開鍵を.ssh/authorized_keys
ファイルにLinuxシステムに貼り付けることができます。
あるいは、PuTTY形式の鍵ファイルから秘密鍵と公開鍵を取得したい場合は、* nixシステムでputtygen
を使用できます。ほとんどのaptベースのシステムでは、puttygen
はPuTTY-tools
パッケージの一部です。
PuTTY形式の鍵ファイルから秘密鍵を出力します。
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
公開鍵の場合
$ puttygen keyfile.pem -L
Sudo apt-get install PuTTY
これで自動的にputtygenツールがインストールされます。
SSHコマンドで使用するためにPPKファイルを変換するために、ターミナルで以下を実行してください。
puttygen mykey.ppk -O private-openssh -o my-openssh-key
それから、SSH経由で次のように接続できます。
ssh -v [email protected] -i my-openssh-key
http://www.graphicmist.in/use-your-PuTTY-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603
私は最近、Linux用のPuTTYからLinux用のRemminaに移行していたときに、この問題を抱えていました。だから私は私が.PuTTY
ディレクトリにPuTTY用のPPKファイルをたくさん持っています。これには、bashシェルですべてのファイルを処理するための単純なfor
コマンドを使用しました。
cd ~/.PuTTY
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;
非常に速くそして要点を言えば、PuTTYが持っていたすべてのファイルに対して仕事を終えた。パスワード付きの鍵が見つかった場合は、まずその鍵のパスワードを要求してから続行します。
Linuxでキーを作成し、PuTTYgenを使用してキーをPuTTY形式に変換する方がおそらく簡単です。
TCSgradが(数年前に)尋ねようとしていたのは、LinuxをWindowsマシンのように動作させる方法だったと思います。つまり、秘密鍵の復号化されたコピーを保持するエージェント(ページェント)があるため、パスフレーズは1回だけ入力する必要があります。それから、SSHクライアントPuTTYは、自分の公開鍵がパスワードを要求されることなく「許可」としてリストされているマシンにログインできます。
これに対する類似点は、TCSgradが "ssh Host"とタイプしたときにsshコマンドが自分の秘密鍵を取得してプロンプトを表示せずに移動するように、Linux、 sshクライアントとして機能する にはエージェントが復号化秘密鍵を保持するパスワードを入力します。ホストは、もちろん公開鍵を〜/ .ssh/authorized_keysに保持している必要があります。
このシナリオに対するLinuxの類似物は、ssh-agent(ページェント類似物)およびssh-add(秘密鍵をページェントに追加する類似物)を使用して実現されます。
私のために働いた方法は、使用することでした:$ ssh-agent $ Shellその$ Shellは私がエージェントを実行させそして実行し続けるために必要とした魔法のトリックでした。私はネットのどこかでそれが壁に向かって私の頭を打つことの数時間を終えたことがわかりました。
これで、ページャントの類似体、つまりキーがロードされていないエージェントが実行されました。
$ ssh-addを単独で入力すると(デフォルトで)〜/ .sshのデフォルトのIDファイルにリストされているプライベートキーが追加されます。
より多くの詳細を含むWeb記事を見つけることができます ここ