私はAwesome Window Managerを使用しています
パスワード付きの秘密鍵を永久に追加するにはどうすればよいですか?
答えに触発された ここ 〜/ .ssh/configに秘密鍵を追加しました
〜/ .ssh/configの内容:
IdentityFile 'private key full path'
〜/ .ssh/configの権限:0700
しかし、私にはうまくいきません。
すべてのセッションで手動でキーを追加する場合は機能しますが、よりエレガントな方法を探しています(.bashrcではありません)
編集:
ssh-copy-if
でSSHキーをリモートホストに追加した後、次のプロンプトがterminal(GNOME Terminal 3.0.1)で表示されますログイン中:
ssh -i .ssh/Password-Protected-Key user@Host
Enter passphrase for key '.ssh/Password-Protected-Key':
gnome-keyring-dameon
があったので、他のpidを強制終了し、gnome-keyring-daemon --start | grep SOCK
(.profileにも追加しました)(grep)出力を実行しました。SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
まったく同じ手順に従いましたが、GUIのssh-addダイアログもありません。
EDIT 2:
Unity 11.10仮想マシンから単一のパスワードで保護された新しいキーを作成しましたが、まだパスワードプロンプトを取得できません。
EDIT 3:これは、Awesomeウィンドウマネージャー:(および場合によってはその他の..
Unity、またはgnome-keyring-daemonを起動するセッションマネージャーを使用している場合は、Seahorse(パスワードとキー)を使用してキーを確立し、その目的を定義し、パスフレーズを設定し、その公開キーをsshで使用するコンピューター。端末コマンドは必要ありません。
パスワードを作成するには:
[ファイル]-> [新規]を選択し、[Secure Shell Key]を選択します。続行を押します。
わかりやすい名前を入力し、Create and set up
を選択します。
キーフレーズを2回入力するように求められます(2回目は、最初に誤って入力していないことを確認するためです。
公開キーを使用するコンピューターと、キーを使用するコンピューターのユーザー名を入力します。公開鍵は他のコンピューターにコピーされ、必要に応じてそのコンピューターでパスワードの入力を求められます。
これで、My Personal Keys
タブにキーが表示されます。
Lightdmにログインしたときにgnome-keyring-daemonが適切に開始され、セッションマネージャーによって再びsshでキーを使用したときに、キーフレーズの入力を求められます。このダイアログボックスでキーフレーズを入力し、Details
コントロールを選択して、ログインするたびにキーリングのロックを解除するように要求できます。このキーは自動的に提供されます。押す OK
リモートコンピュータへのログインに使用できる別のキーがある場合、この方法でプロンプトが表示されない場合があります。
これが完了すると、最初のSeahorseタブPasswords
に、キー名の「パスワードエントリのロック解除」が一覧表示されます。 「パスワード:ログイン」の前の三角形をクリックして表示します。
これはおそらくあなたが望むものです:キーパスフレーズを一度入力すると、ログインしているときはいつでもそれが利用可能になります。UnityまたはGnomeデスクトップを使用しているほとんどのユーザーで機能します。
公開鍵をリモートサーバーに追加した後に接続すると、GUIのssh-addダイアログが表示されます。
三角形をクリックして「詳細」を展開すると、以下が表示されます。デフォルトは「ログアウト時にキーリングをロックする」で、セッションごとにパスワードを入力する必要があります。
それをに変更します...自動的にロックを解除します...ログインするたびに、つまり、セッションにログインするたびに動作します-それは「ユーザーパスワードによって制御されます。再起動後も保持されます。
キーパスフレーズを1回入力するだけで、キーはデスクトップ環境への最初の正常なログインを介して認証されます。
AwesomeWMのフレッシュインストールでフレッシュユーザーIDでテスト済み
デフォルトでは、AwesomeWMはssh-agent
を使用します。
$エクスポート| grep SSH declare -x SSH_AGENT_PID = "5479" declare -x SSH_AUTH_SOCK = "/ tmp/ssh-fWCKNnPq5440/agent.5440"
上記の手順を実行するには、ssh-agentではなく、gnome-keyring-daemon
をSSH認証デーモンとして使用する必要があります。 lightdmを使用してログインすると、PAMはgnome-keyring-daemon
を起動し、ロック解除パスワードを使用してログインキーのロックを解除しようとしますが、実行を続けて使用するには構成に追加する必要があります。
~/.xprofile
の最後に次を追加します。
#!/ bin/bash eval $(gnome-keyring-daemon --start) export SSH_AUTH_SOCK export GNOME_KEYRING_PID export GNOME_KEYRING_CONTROL
~/.xprofile
ファイル内のコマンドは、awesomeウィンドウマネージャーを開始する前にxsessionによって実行され、上記の環境を介してPAMによって開始されたgnome-keyring-daemon --login
プロセスに関連付けられます変数。
ssh user@Host
を実行すると、上記のポップアップが表示されます。これらを使用して〜/ .ssh /の秘密鍵をデコードし、gnome-keyringログイン鍵リングに秘密鍵を保存します。gnome-keyring-daemon
の代わりにssh-agent
を使用することです。このためには、gnome-keyring-daemon
を実行する必要がありますand初期化andssh-agent
が開始された後にこれを行うか、ssh-agent
を開始しないすべて。
ssh
(実際にはssh-add)は、SSH_AUTH_SOCK
環境変数の値に基づいて呼び出す認証エージェントを決定します。これは、export | grep SOCK
と入力することで確認できます。
これはSSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
forssh-agent(キーを保存できるようにするものではありません)
しかし、フォームのSSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
forgnome-keyring-daemon(希望)
そのため、値を確認し、ps aux | grep keyring
でgnome-keyring-daemonが実行されていることを確認します。実行されている場合は、gnome-keyring-daemon --start
の結果で初期化します。
その後、ssh-add -l
と入力して、コンソールで関連する保存されたIDを確認できます。「エージェントなし」と表示された場合、gnome-keyring-daemonの設定を間違えています。
問題の解決策は、sshエージェントを使用することです。キーのパスワードを一度ロック解除するだけで、その後、エージェントによってメモリに保持され、自動的に使用されます
ssh-keygen -t dsa
を使用して秘密/公開キーペアを生成しますssh-copy-id
を使用します)ssh-add
を実行します。これによりパスフレーズが要求され、保存されますssh-agentは.netでよく説明されています。たとえば、次のとおりです。
Ssh-agentのもう1つの利点は、ssh -A [email protected]
を使用してリモートシステムにログインすると、プライベートキーをdomain.nameにコピーすることなく、domain.nameコンピューターからパブリックキーを含む3番目のコンピューターにさらにsshできることです。コンピューター(および秘密キーは1回限りのチャレンジ/レスポンスのみが表示されます)。