OSX ssh-agent:パスワードの貼り付けなし、PKCS#8の問題?


37

私は自分のマシンでsshを使用しており、パスワードマネージャーに保存されている、人間に優しいものではない長いパスフレーズを設定しています。毎回私を夢中にさせるのは、下の写真のウィンドウに貼り付けることができないことです。私はRemember password in my keychainオプションを知っており、それを使用しています。時々新しいものを入力する必要があります。パスワードフィールドに貼り付けられないのはなぜですか?

暗号化されたディスクを接続するときにポップアップするダイアログでも同じことが言えます。

ssh-agentウィンドウ

いくつかの更新:

  1. ダイアログを回避する方法を見つけました:を使用するだけでssh-add -K ~/.ssh/id_rsa、パスフレーズを端末に貼り付けることができます。
  2. mattmcmanusが述べたように、私の鍵はpkcs8Yosemiteのsshエージェントで壊れたものを使用して暗号化されています。これは上記の問題とは関係ありませんが、同時に発生しました(こちらをお読みください)。
  3. 暗号化ディスクの場合、これを使用してssh-add もまだ修正されません

以下の良い回答のいずれかを受け入れてください。また、1つの投稿で複数の質問をすることも避けてください。
アランオデア

1
@ AlainO'Deaまず、そうです、これは古い質問であり、私はそれを忘れていました。ただし、2番目の問題については、質問の時点で、2番目の問題(破損したPKCS)が発生するかどうかは不明でした。編集履歴を参照してください。
ジョニ

回答:


22
  1. コンソール/端末にキーを追加すると、ssh-agentのダイアログを回避できますssh-add ~/.ssh/id_rsa。その後、パスワードを端末に貼り付けることができます。また、-Kオプションを追加すると、ssh-addOliver Lacansのコメントに従ってキーチェーンに保存されます。
  2. mattmcmanusが述べたように、PKCSを使用したid_rsa暗号化はOSX Mavericks ssh-agentで壊れているようです。迅速な回避策は、キーファイルを復号化し、標準のssh手順で再度暗号化することです(キー派生方法:MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again

3
joniの答えは素晴らしいですがssh-add -K ~/.ssh/id_rsa、「キーチェーンにパスフレーズを保存する」をお勧めしますssh-add --helpssh-add新しいシェルタブを開くたびに、またはマシンを再起動するたびに再実行する必要がなくなります。
オリビエラカン

2

それはPKCS#8キーですか?あなたは異端者ですか?もしそうなら、それは完全に破壊されたようです。解決策はまだありません。


1
なぜこれが必要ですか?これまでの問題は、ダイアログのパスワードフィールドが貼り付けを受け入れないことだけです。これはすでに10.8に存在していましたが、10.9への更新のため、パスフレーズを再度入力する必要があります。
ジョニ

OK、あなたは正しいようです...私自身の答えを見てください。
ジョニ

2

Mac OS X El Capitanでは、ssh-addコマンドで-Kオプションを使用してこれを実行できます。

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

prompt -Vを使用して、このプロンプトにパスワードを貼り付けることができます。

このセッションは次のようになります。

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

man ssh-addで提示されたSSH-ADD(1)の関連抜粋:

-K アイデンティティを追加すると、各パスフレーズもキーチェーンに保存されます。-dを使用してIDを削除すると、各パスフレーズがキーチェーンから削除されます。

INFOSEC注:パスワードはシェルに表示されませんが、クリップボードを介して実行中のすべてのアプリケーションに公開されます。オートタイプソリューションの方が安全です。


1

AppleScript Editorで次のようなスクリプトを実行できます。

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell

1
おかげで、これは「暗号化されたディスク」ダイアログに役立ちます。しかし、なぜリンゴは貼り付けのためにこのフィールドを無効にしましたか???
ジョニ

便利ですが、そうです、これでPKCS#8の問題が解決しないと考えてください。正しいパスワードを入力しても、パスフレーズが間違っていると言われます。
ボブ・アマン

意味を成さない。これで、極秘パスワードがすべての人に公開されました。これが、TSがパスワードマネージャーを使用してパスワードを集中管理し、高度に保護する理由です。
フェーフェリンガー

1
El Capitanでは機能しません。まず、スクリプトエディターが[ システム環境設定]でSystem Events got an error: Script Editor is not allowed assistive access. 許可されたら、支援制御を取得するように要求します。セキュリティとプライバシー私が取得System Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
アラン・オデア

1

同じ問題がありました。この質問を見つけた後、私は探し続け、他の場所で答えを見つけました。これは古い質問ですが、受け入れられた回答はなく、依然として検索リストの上位にあります。(その上でのスタック交換のエチケットについてはわかりません)。

REがコピー/貼り付けできない:仕様によるものです。目的は、クリップボードからフィールドへのすべてのアクセスを防止して、悪意のあるプログラムがパスワードボックスをスクレイピングするのを防ぐことです。貼り付けることは(カットではなく)許可されるべきだと思いますが、技術的な理由があるかもしれません。

(少なくとも)Yosemiteのssh-agentの-K場合、オプションはssh-add -K ~/.ssh/blahあなたが望むことをします-パスワードを一度入力すると、それはキーチェーンに保存され、ssh-agentは透過的にロックを解除します。より安全に試すために、sshパスフレーズを別のキーチェーンに入れて、定期的にロックします。


見つけた答えへのリンクを共有できる可能性はありますか?
ジョンカーニー

ごめんなさい!ssh-agentについては、developer.apple.com
library / mac / documentation / Darwin / Reference /

0

brew opensslとopensshを使用すると、問題が修正されます。

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

opensslを強制的にリンクしてもMavricksで何かが壊れるかどうかはわかりません。これまでのところ、私は問題に気づいていません。


1
には(より長いa)brew式はありませんopenssh
アダムリットル14

brew tap homebrew/dupesしかし、まだあります。とはいえ、これらの手順は私にとってこの問題を解決するようには見えませんでした。
ボブ・アマン

@ simple10この回答では、ほとんど価値がありません。少なくとも、問題を修正するopenssl / opensshのバージョンを提供する必要があります。さらに、その理由を詳しく説明してください。
フェーフェリンガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.