web-dev-qa-db-ja.com

sshパスフレーズキーを一度だけ入力する方法

公開鍵認証を使用して目的のリモートサーバーに接続するsshのパスワードなしのセットアップをセットアップしましたが、すべてうまくいきました。

パスフレーズを使用して秘密キーのロックを解除しています。これを使用して solution —問題は、システムを起動するたびにパスワードを要求することです。

これは問題があるとわかったので、一度だけ一度に入力したいので、次回セッションを起動するときに、入力する必要はありません。もう一度入力してください。パスフレーズを保持し、セッション全体で機能する(再起動後も存続する)キャッシュされたキーのようなものはありますか?

Sshパスフレーズをそのままにしながら、これらすべてを達成することは可能でしょうか?

1
Liso

ssh-keygen -pを実行します。これにより、キーに設定されているパスフレーズを削除できます。パスフレーズが設定されていない場合は、クリアテキストで保存され、ロックを解除せずに使用できます。

$ ssh-keygen -p 
Enter file in which the key is (/home/user/.ssh/id_rsa): 
Enter old passphrase: 
Key has comment ''
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

パスフレーズを要求されたらEnterキーを押すだけで、パスフレーズを設定しません。その後、自由にキーを使用できます。

7
vidarlo

keychainを使用したい。

keychainプログラムは、キーキャッシュプログラムssh-agentのインスタンスを管理します。 ssh-agentを開始すると、2つの環境変数が作成され、評価されます。通常、ssh-agentが開始されているシェルが閉じている場合、これらの環境変数は失われます。 keychainプログラムは、ログイン全体でこれらの変数を追跡し、~\.keychainディレクトリにシェルスクリプトを提供します。

keychainを実行するにはいくつかの方法があります。1つはコマンドラインから手動で実行する方法です。シェルを起動するたびに、以下を使用します。

eval `keychain --eval`

これは、実行中の場合はssh-agentを検出し、実行中の場合は開始します。どちらの方法でも、keychainでevalを使用すると、必要な環境変数が設定され、次のコマンドを使用してキーを追加できます。

ssh-add <private-keyfile>

private-keyfileにパスワードがある場合、ssh-addの実行中にそのパスワードを入力するように求められますが、ssh-agentが実行されている限り、最後に入力する必要があります秘密鍵のパスワード。

keychainの評価によりSSH_AUTH_SOCK環境変数が設定されるため、sshを実行すると、ssh-agentを使用して認証が行われます。

もう1つの提案は、_ このStackExchangeの回答 で提案されているように、keychain実行を.bashrcファイルに追加することです。

keychainを終了するには、次のコマンドを入力します。

keychain --stop mine

または、ssh-agentのすべてのインスタンスを停止する場合は、次のコマンドを入力します。

keychain --stop all

注:ssh-agentなどのサービスを使用すると、認証されたキーをメモリに格納することにより、パスワード付きの秘密キーファイルのセキュリティが無効になります。これは、特にメモリのサイドチャネル攻撃では安全ではありません。キーのセキュリティに関心がない場合は、@ vidarloの提案に従って、秘密キーのパスワードを削除するのがより簡単な解決策です。

5
John J.

簡単な答えはノーです。
再起動後も維持されると、目的(つまり、保護)が無効になります。
ただし、ログインセッション間、さらには複数の端末間でも維持できます。

  • ログインセッション間で維持したいが、端末ごとに1回パスワードを入力してもよい場合は、eval $(ssh-add)を_.bash_profile_に追加します。

  • システムの再起動ごとに1回行う場合は、キーチェーンをインストールし、_~/.ssh/config_ファイルを変更してキーをキーチェーンに追加し(_AddKeysToAgent yes_)、上記の手順も実行します。

1
xrplorer