最近、コンピューターにKubuntu 16.04.2をインストールしました。それ以降、sshキーを使用してbitbucketおよびgithubリポジトリにアクセスできなくなりました。古いシステム(Ubuntu 14.04)では、「秘密鍵のロック解除」というタイトルのポップアップが鍵の最初の使用のために表示され(パスフレーズを要求)、セッションの残りの部分に設定されました。
更新以来、次のエラーが表示されます。
$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
これは、キーがssh-agent
(まだ)に追加されていないためです。私はこれを使用して手動でこれを行うことができます:
$ ssh-add ~/.ssh/my_key
Enter passphrase for .ssh/my_key:
これは回避策です。
上記の回避策はトリックを行う可能性があり、それを自動化するオプションがあります(以下のリンクを参照)が、最初の使用時にパスフレーズを自動的に問い合わせられる古い機能に戻すことを望みます。
これが機能するために、私(私のシステム)に何が欠けているのでしょうか?私は、どの部分/プログラムが関係しているかについて100%ではありません。
これが関連するかどうかはわかりませんが、LDAPを使用しているため、Ubuntu 14.04(Unityを使用)から16.04(KDEを使用)に移動するときにホームフォルダーのコンテンツを保持しました。
メール暗号化キーの場合、動作は変更されておらず、ポップアップでパスフレーズを要求されます。
別の質問 が同様の問題に対処しています。ただし、これは異なるバージョンを扱い、異なる目標を持っています(コンソールで動作させるため、ポップアップを戻したい)。
すでに述べたように、追加
IdentityFile ~/.ssh/my_key
AddKeysToAgent yes
~/.ssh/config
に追加して、同様の動作を実現します。
ローカルssh構成(
AddKeysToAgent yes
)に(~/.ssh/config
)を追加すると、キーも保存されます。ただし、クエリはターミナル内にあり、それ自体は悪くありませんが、このポップアップを元に戻す方法を理解したいと思います。
古いUbuntuのポップアップは、キーを保存していたgnome-keyring
から来ていました。 UbuntuのKDEバージョンには明らかにありません。
純粋なOpenSSHから同じプロンプトを取得する簡単な方法はありません。ただし、同様の機能を備えたKWalletを試してみることができます。
IDファイルのデフォルトのファイル名は次のとおりです。
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
独自のファイルを/etc/ssh/ssh_config
に追加するか、名前を変更するとうまくいきます。