毎回ssh-addと入力しないようにする方法


11

リモートマシンにsshするたびにパスワードを入力する必要がないように、ssh-agentのセットアップ方法に関するオンラインドキュメントを読んで従いました。

ただし、ssh-agentを使用するとssh-add、シェルを再起動するたびに行う必要があります。ssh-addその後、秘密鍵のロックを解除するためのパスフレーズを入力するように私に尋ねます。

Enter passphrase for key '/home/xx/.ssh/id_rsa':

リモートマシンのパスワードを入力する代わりに、秘密鍵のパスワードを入力するよう求められます。それは煉獄から出て、その後地獄にいることに気付いたようなものです。id_rsaはセッションssh-agentに一時的にのみ追加されるように見えますssh-add -l。なぜなら、ログインして入力するたびに。私は得る:

The agent has no identities.

ssh-agentにキー(id_rsa)をどのように永続的に保存するかを尋ねることができますか?ありがとう

編集:これは私がやったことssh-agentです。に次のブロックを追加しました~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
fi

ログインするたびに、またはシェルウィンドウを開くたびにパスフレーズを入力する必要があるということですか?あなたはいくつかのオンラインドキュメントに従っていると言いますが、ssh-agentはUbuntuでそのまま使用できるので、何もする必要はありません。あなたは正確に何をしましたか?
ジル 'SO-悪であるのをやめる'

リモートマシンにsshするたびにパスフレーズを入力する必要があります。しかし、それは、リモートマシンにアクセスするためのパスフレーズではありません、私の秘密鍵(id_rsaと)のロックを解除するためのパスフレーズです。
ssgao

私はそれがあなたの鍵のパスフレーズであることを知っています。私が求めていることは、あなたがssh-agentの設定するために何をしたかで、実行しているかどうかssh-add、あなたがそれを入力したシェルウィンドウよりも長く持続する効果があります。
ジル「SO-停止されて悪」

この効果は、システム(ローカル)からログアウトするまで続きます。私がやったことをssh-agentポストに入れました。
ssgao

これは通常の動作のように聞こえます。キーをロック解除するには、セッションごとにパスフレーズを1回入力する必要があります。ロックされていないキーがどこかに保存されている場合、これはキーにパスフレーズを持つという目的を無効にします。保存されたロックされていないキーを取得する人は誰でも使用できます。他に何かを期待していましたか?ログアウト後にキーをメモリに保存して、次回の再起動まで使用できるようにしますか?
ジル 'SO-悪である停止'

回答:


6

キーチェーンをインストールしました。

sudo apt-get install keychain

bashを実行している場合は、.bash_profileにいくつかのコマンドを追加する必要があります。.bash_profileがない場合は、ホームフォルダーに作成します。次の行を追加します。

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

仕事の最初にログインします。ターミナルを開くと、パスフレーズの入力を求められます。他のすべての新しい端末と接続については、パスフレーズの再入力は求められません。


4
これssh-addは端末での入力とどう違うのですか?
ssgao 14

yaしかし、その後、毎回ssh-addを入力する必要があります...これを行うと、2つのステップが切り取られます-> eval "$(ssh-agent)"およびssh-add
abhishek

1

あなたが探しているのは安全性が低いですが、ssh-agentを必要とせずに公開鍵認証を使用して実現できます。より安全なオプションは、sshサーバーでパスワード認証をオフにしながらパスフレーズで公開キー認証を使用することですが、これはあなたが要求したものではありません。代わりにこれを行うことにした場合の手順については、この回答の下部にあるリンクを参照してください。

パスフレーズを要求されずにsshを使用するには、パスフレーズフィールドを空白のままにしてキーペアを生成する必要があります。

キーペアがすでに生成されているかどうかを確認するには、〜/ .sshディレクトリでid_rsaファイルとid_rsa.pubファイルを確認します。それらが既に存在する場合は、それらを削除するか移動して、新しいキーペアを作成できます。

それらを削除すると、使用しているsshサーバーへのアクセスが失われ、サーバーでパスワード認証がオフになっている場合に認証する古いキーが失われます。

新しいキーペアを作成するには、次のコマンドを実行します。

ssh-keygen -t rsa

キーのデフォルトの場所を受け入れ、パスフレーズを空白のままにします。

接続するsshサーバーに公開鍵を与えるには、次のコマンドを使用します。

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

これらの手順を完了すると、使用しているコンピューターからパスワードなしでリモートサーバーにログインできるようになります。

参照:http : //tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/


0

しばらく前に、突然sshキーのロックを解除するためのパスフレーズを求められましたgit push。パスフレーズの入力を停止するには、SSH Key Agent(GNOME Keyring:SSH Agent)をスタートアップアプリケーションに追加するだけで十分であることがわかりました(私の場合、チェックボックスをオンにするだけです)。

ここに画像の説明を入力してください


それを行う方法と、それが問題を解決する理由について、より詳細に答えを広げてください。ありがとう。
バイトコマンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.