[解決済み】SSHキーを削除する方法を教えてください。
質問
現在、サーバーに古いSSHキーをアップロードしています。問題は、私の
~/.ssh
ディレクトリ(元の
id_rsa
と
id_rsa.pub
ファイル)を作成します。
その結果、古いSSHキーをサーバー上で直接削除し、新しいキーをアップロードしたいのです。
以下のコマンドを試したのですが、成功しませんでした。
$> ssh-add -D
<イグ
SSHキーを完全に削除する方法はありますか?
解決方法は?
については、少なくとも2つのバグレポートがあることに注意してください。
ssh-add -d/-D
ではなく
キーを削除します。
-
"です。
Debian バグレポート #472477。
ssh-add -D
から SSH 鍵を削除しない。gnome-keyring-daemon
メモリ "です。 -
"
Ubuntuです。
ssh-add -D
を削除しても、すべてのIDを削除してもうまくいきません。また、なぜすべてのアイデンティティが自動で追加されるのですか? "
正確には問題です。
ssh-add -d/-D
のみを削除します。 手動で追加した のキーを gnome-keyring から取得します。
自動的に追加されたキーを削除する方法はありません。
これはオリジナルのバグで、今でも確実に存在している。たとえば、仕事用と自宅用のふたつの GitHub アカウントに、ふたつの異なる ssh ID を自動的に割り当てている場合、次のようなことが起こります。 まさか を切り替えることができます。GitHub は最初にマッチした方を採用するので、GitHub では常に 'home' ユーザーとして表示され、仕事用のプロジェクトに何かをアップロードすることはできません。
許可する
ssh-add -d
に適用されます。 自動ロード キー(およびssh-add -t X
を使用して、自動的にロードされるキーのライフタイムを変更することで、ほとんどのユーザーが期待する動作を復元することができます。
より正確には、この問題について。
犯人は
gpg-keyring-daemon
:
- これは ssh-agent の通常の動作を破壊するもので、たいていは暗号化された ssh 鍵のパスフレーズを入力するためのきれいなボックスをポップアップさせることができるようになっています。
- そして、あなたの
.ssh
ディレクトリに移動し、見つけたキーを自動的にエージェントに追加します。- そして、そのキーを削除することはできません。
どうしたらいいんだろう?数え上げるのはやめましょう。人生は短いのですから。
新しいsshクライアントは、ホストに接続する際にssh-agentにあるすべてのキーを自動的に試すので、失敗はさらに深刻になります。
多すぎる場合は、サーバーが接続を拒否します。
そして gnome-keyring-daemon が ssh-agent に持たせたいキーの数を勝手に決め、それをオートロードしてしまい、それを削除することを許さないので、あなたは破滅してしまうのです。
このバグは、2日前(2014年8月21日)の時点でも、Ubuntu 14.04.4で確認されています
可能な回避策
- する
ssh-add -D
をすべて削除してください。 手動で キーを追加しました。これはまた は自動的に追加されたキーですが、あまり意味がありません。gnome-keyring
を実行しようとすると、どうせロックを解除するように要求されます。git push
.- に移動します。
~/.ssh
フォルダに移動し、識別したいキーファイル以外のすべてのキーファイルをbackupという別のフォルダに移動してください。必要であれば、seahorseを開いて、そこからキーを削除することもできます。- これで、次のことができるようになります。
git push
を問題なく実行できます。
もう一つの回避策
本当にやりたいことは
gpg-keyring-daemon
を完全に削除します。
に移動します。System --> Preferences --> Startup Applications
を選択し、"の選択を解除してください。SSH Key Agent (Gnome Keyring SSH Agent)
というボックスは、スクロールして探す必要があります。それでも
ssh-agent
鍵の自動ロードはなく、ssh-add を実行して鍵を追加し、鍵を削除したければ削除することができるのです。想像してみてください。
このコメント を実際に示唆しています。
を維持することが解決策となります。
gnome-keyring-manager
プログラムファイルの実行権限を削除することで、最終的に達成することができました。
ライアン・ルー もう一つの興味深いケースを追加 コメントで :
誰かの役に立つかもしれないので、私は
id_rsa
とid_rsa.pub
ファイルを完全に削除しても、キーは表示されたままでした。判明したこと
gpg-agent
にキャッシュしていました。~/.gnupg/sshcontrol
ファイル そこから手動で削除する必要がありました。
という場合です。
その
keygrip
が追加されました。
このように
.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】サブモジュールを削除する方法は?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】ERROR: Error cloning remote repo 'origin'.
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
[解決済み] [Solved] 作業ツリーのディレクトリ 'example.com' を作成できませんでした。パーミッションが拒否されました
-
git commits with an error: 更新が拒否されました。現在のブランチの先端が、このブランチより後ろにあるためです。
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み] fatal: EOF が早い fatal: インデックスパックが失敗した
-
[解決済み] git commit signing failed: secret key not available.
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。