Як змінити пароль для приватного ключа?


283

У мене є пара відкритих / приватних ключів. Приватний ключ захищений паролем, а шифрування може бути або RSA, або DSA. Ці ключі є типом, з якого ви генеруєте, ssh-keygenі зазвичай зберігаєте під ~/.ssh.

Я хотів би змінити пароль приватного ключа. Як мені це зробити, на стандартній оболонці Unix?

Крім того, як мені просто видалити пароль? Просто змінити його на порожнє?

Відповіді:


371

Щоб змінити фразу фрази на стандартному ключі DSA:

$ ssh-keygen -p -f ~/.ssh/id_dsa

тоді вкажіть стару та нову парольну фразу (двічі) підказки. (Використовуйте, ~/.ssh/id_rsaякщо у вас ключ RSA.)

Детальніше з man ssh-keygen:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1
Це з довідкової сторінки, що постачається з net-misc / openssh-5.2_p1-r2 на Gentoo Linux.
Майк Мазур

12
Крім того, заради майбутньої ледачої людини я б змінив порядок: спочатку швидка відповідь, пізніше сторінка людини.
кч

2
Я вважаю, що відповідь чудова, оскільки вона показує, де ви можете змінити пароль і де шукати відповідь. Я допомагав багатьом людям налаштовувати ssh-клавіші, і запам'ятовувати, яким інструментом вони користувалися, не завжди легко. Крім того, пошук відповіді в мережі є першим варіантом для багатьох ...
sastorsl

5
Якщо ваші машини використовують OpenSSH> = 6.5, ви повинні використовувати -oопцію, щоб увімкнути новий формат приватного ключа (bcrypt як KDF за замовчуванням). У старих версіях OpenSSH використовуйте PKCS № 8 для більш захищених файлів приватного ключа .
Квінн Комендант

2
@FranciscoLuz команда в моїй відповіді є специфічною для ключа DSA. Якщо у вас ключ RSA, то ваша команда правильна. Я додав розмиття у відповідь, щоб вирішити це.
Майк Мазур

-9

Видаліть свої приватні / приватні ключі SSH:

rm ~/.ssh/id_rsa*

Відтворити ключ, вибравши нову парольну фразу:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Додайте новостворений приватний ключ у свій брелок OS X, щоб зберігати пароль та керувати розблокуванням автоматично:

ssh-add -K ~/.ssh/id_rsa

Скопіюйте відкритий ключ у буфер обміну OS X для додавання до таких веб-служб, як GitHub тощо.

cat ~/.ssh/id_rsa.pub | pbcopy

Додайте новостворений відкритий ключ у ~/.ssh/authorized_keysфайл віддаленого сервера. Обов’язково переконайтесь у правильних дозволах віддалених ~/.sshпапок (700) та ~/.ssh/authorized_keys(600). Ви можете розслідувати за допомогою ssh-copy-idполегшити цей процес.


3
Плакат запитав, як змінити пароль на свій ключ, а не викидати його та створити нове; і вони ніколи не згадували про OS X.
musicinmybrain

2
Я б схвалив цю відповідь, якби не ці три проблеми: 1. Видалення старих ключів не є вдалим початком, оскільки вони вам знадобляться під час оновлення authorized_keys. 2. Ви не згадали, чому створювати нові ключі краще, ніж змінювати паролі на старих. 3. Ви робите припущення щодо ОС, що не підтримується питанням.
kasperd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.