ssh-agentの設定方法に関するオンラインドキュメントを読み、それに従って、sshするたびにパスワードを入力する必要がないようにしましたリモートマシン。
ただし、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
キーチェーンをインストールしました。
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 ###
仕事の最初にログインします。ターミナルを開くと、パスフレーズの入力を求められます。他のすべての新しい端末と接続については、パスフレーズの再入力は求められません。
あなたが探しているものは安全性が低いですが、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/