Проведя два месяца в общении со службой поддержки Salesforce, я наконец понял, что для загрузки ключа SSH в Key Management необходимо использовать PuTTYgen, а не ssh-keygen
(на Mac).
Может ли кто-нибудь объяснить мне, как мне ssh-keygen
сгенерировать такой же закрытый ключ RSA, как в PuTTY?
Вот пример ключа, созданного PuTTYgen (и который Salesforce Marketing Cloud с радостью примет):
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAj+derXf2g3PmS2+H+UCuPBt3YV29BUdFICznAcZUJxoMbf2q
670zwpIqoMt2+KnJxWMbs+miYpAjUJBwgr3HuFa2XrrDUJISDffXRpucOSArqSdz
6k6PyKKgZCqx1Cp7BdDsMB6NwJURfS/iqgcVUTpU0Q3kclySWgvspkaW5JwGM513
Bzt6ECZXYjbPC/3w0/kS8COBQFdOMVDhEvHoMoK6yHCnBTC+bRVemqV3WHDMYNbX
4Gg5Z7hjsXtrEgMMYtOlQrF/mZkEdcFVKpqujavl26mwyMG06FRZUQYvPmmcgGhy
J5PuwH2MJjo63vEflAf0MKBprJXSySmmTD0QqwIBJQKCAQBRrNTe/uXb59W8HLT1
QGLj2DzWZaKiIYgZLj3sQCHsrethBZhcSMpZrOfDC7I6Gy1UWthfMZOEDJ5r/vO/
038xRfjN+0xCfGscr0LVDDYSlbfqYoAPXQV/tj9bci2UGBxPaL1na0mI+qkPs2T4
t+mBIRth5UpOvutH3UEgGjn3XpoXggnos352fnklPrglwAmYnmaurzULUA8MeRDt
C00/b8ErmLVOdcJcccCdGsTkU0KBXZPtaw1sVNBF7hASoQuoNpmqOFOo9KfZzro+
ivAXCpmCQSJ3T3qMACIVVg4UxprpgROh6kfiHzIwLZtFEhVH/mQn726WZfbRoxbm
m20tAoGBAO6VYMtUEPaZ54EHAKKPovZLMzHgq3OX9vJN3d0z49zPxbTrtAY6cMVw
gQV2miYs3y46mdiC5gO/Q2paEBpM4JMXgPG8hWjXj0c4KyE4IE3eDJ69+sZsqEeS
ugejb49HOPsvNGvyyMfj6iTA5H2dItCJ8G529/OBx2MKiEU1PSnBAoGBAJpooLKf
Q5h0tVY+KTEtpxpjfgeSjH9v335TkYSGjGrmx1wuZm2Jp1ll5E7qq2P6zij5Kmhy
Drx734piTfd/vZWEeJiXNo+MKerWNijBPHCHBoHKeRtZH63MpkZjbLfq90c74uOd
nBXspZUQcxlmlhEpuNVCiLNSlLCuyyyM4d1rAoGBAKE0f6v6iACRgL725MDdl59+
6z1gc9h7b4Ef2xjrtaMI7V6Ra8zbYPQblXJk5LICpKKx+T9DsCwLnEDwvsWpkNIW
zL8C1q6ffHw6tVuidrEnVKKcCk64HqzmmV8bZw3IVu7oizQua/yuwMy5ryRxF4X8
Vlh55c4LlI8HHc3ls7RtAoGALefBEoJgND5fbKqyTOQPFa7gR3DB/F+HohjYPCgA
O3UK1jdO4kuEx4z+r62M5l9SDC5mjcELTMrhl9gJV2sqhmWnT/WamWEFiwFqDB3F
3EPRgIhNhKvLJdUO1qfv46a4N8WyJ/5srJJ2apYwDnhxzcBLtQXxShGh06mWWVpQ
/KMCgYAauXmOmtv+nq+wZD8Iz8cEZVB4T7Hq0+2rdLuHRZK8NiqEK+TJWqSh3ASU
QplcsWdhI6lyAj52A9mHzl3KMwXpdJaQzsb1Qy6hsNrjp80OpUwdFn47HR7nM2de
+dTldYpwQ+mF98P3INN0VeNBj2Zon+/1NAjDxEMDur1tEn/EGw==
-----END RSA PRIVATE KEY-----
И вот ключ, который ssh-keygen -t rsa -b 2048
мне даёт:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA4EEMDSLlscX+/ZMwE/+VNuNYyWPMOks1uW/76zRyYmEmYNPh+WC6
m+/TtisPrsHqmw8WxyGSsp/zDwQ8NBLIbuXOmwQYSwVeveqhcowY/thpqKJ5kmp06gCIH6
rCh8b5+rf8i53UsLrPK1RwDoTWAK6Pn4F74OIMUJbY8pRmRlgJ/iENTkzXHBVVtVq5yltP
aG3CuVB56TRV8O//KMEvaEum45okj9PuMTn4okCYr7k/BUIrGYgl2GHsb7CTLP1LOjSV6q
XhhiTAJvEriGsivSH9wTBkmRXZtwJMCn8i5SfaDRyQ/cjIFKGgXJQv6pXKXWBk0R0YsN7q
xCC03lBMoQAAA9BccOaWXHDmlgAAAAdzc2gtcnNhAAABAQDgQQwNIuWxxf79kzAT/5U241
jJY8w6SzW5b/vrNHJiYSZg0+H5YLqb79O2Kw+uweqbDxbHIZKyn/MPBDw0Eshu5c6bBBhL
BV696qFyjBj+2GmoonmSanTqAIgfqsKHxvn6t/yLndSwus8rVHAOhNYAro+fgXvg4gxQlt
jylGZGWAn+IQ1OTNccFVW1WrnKW09obcK5UHnpNFXw7/8owS9oS6bjmiSP0+4xOfiiQJiv
uT8FQisZiCXYYexvsJMs/Us6NJXqpeGGJMAm8SuIayK9If3BMGSZFdm3AkwKfyLlJ9oNHJ
D9yMgUoaBclC/qlcpdYGTRHRiw3urEILTeUEyhAAAAAwEAAQAAAQA5TgXxWWiOvATD8ZfI
lHgh1Yi7tcfbYZqx7z7VxMox/5daCOrm2eP1sxxLocdZJe54fyuX6SlegecPgEqOF/ql9A
2OqUY37YBfUZS9+7TrcovVbudYFeIYZdhjFzSsk5kPi3J6jvNp0eLctLAJ1cIF3JWQ8fqg
5cK12UZI/sj/0kbY5kXaW9Y/Qn+PQotlsgvwT9/LPGQltvTr4WbVTfKCCszhAghcHpEPro
DXQ2FthgVW+hM4xKicGMAhXuVGt1nz/j349SyPuW0qM4czCqvFIIYeZ8t2SOyOM7SPfpxT
LHHURf47n2oYlaUUASPnOqXQZhiISPStm+ZDyYP9fPMtAAAAgQDHUkYmhD4mEDk+Nnp4iM
BwHb08wC2wDij3Fj2bSVUFoOgGz7OcQ722BsDdPKDNqNn6kCv2+B4BGL94UyEFWKTlcRuy
/e/rSQuwA6sMaQDPEN/W8dzWQiepxZxzGm2yTDcZCgpVUcLxbwNURGiHmzaOgn1NB8cT/I
LiE+C6VefXHQAAAIEA/hVGc5lkVy8299TiNnL4i6+hYf/CLHeTaMaHNU7AoDxjLUxdmiO4
/txqBBeDUeoG1dq/jCIYM2pRocBYXJON0bRPkqgZRX4l+BFtGd7RSjfXeVYLM8UFZrjMNJ
rOf9ESdbOlsRPmzDwDBkFNhoIBW4SzN++L95oM8iJ6d9GCBxcAAACBAOHyKVQo2Com+c70
FN3k0sXjFUq9zXmau2CYW+A8OFtxWWGEiuxf7FL6oTOh1WcqWbi/JegJnVOIShnjn5crQe
FzDxDghA53V0qDOwJxo8T84wKEN1ZudykRAm1rNV7zW+xLhqR0qEg/SVMjNM8JrIYI96LT
FVNvA3COspvHf50HAAAAGGphbWVzYUBzdXFsZC1sMDEwOC5sb2NhbAEC
-----END OPENSSH PRIVATE KEY-----
Быстрое наблюдение показывает, что заголовки BEGIN RSA
и BEGIN OPENSSH
отличаются. Также кажется, что PuTTY делает переносы строк на 65 символах и ssh-keygen
разрывает строку на 71 символе.
Точные инструкции, которые я использовал для создания ключа в PuttyGen, следующие:
- СкачатьPuTTYgen
- НажмитеГенерироватьи переместите мышь, чтобы создать случайность
- После того, как ключ сгенерирован, неСохранить закрытый ключ, но идите кКонверсиименю и нажмитеЭкспорт ключа OpenSSH
- Оставьте пароль пустым и сохраните как*.ппкфайл
- Загрузите в Key Management в Marketing Cloud.
Кто-нибудь знает, как это сделать ssh-keygen
(чтобы мне не пришлось постоянно брать взаймы машину с Windows)?
решение1
Последние версии OpenSSH ssh-keygen
(7.8 и новее) генерируют ключи в новом формате ( BEGIN OPENSSH PRIVATE KEY
).
Ваше программное обеспечение (Salesforce Marketing Cloud), похоже, не поддерживает этот формат.
Использовать-m PEM
флаг, чтобы заставить новых ssh-keygen
сгенерировать ключи в старом формате (например BEGIN RSA PRIVATE KEY
):
ssh-keygen -m PEM -t rsa -b 2048
Вы также можете использовать ssh-keygen
для преобразования вашего существующего ключа в новом формате в старый формат, «злоупотребляя»-p
выключатель:
ssh-keygen -p -f file -m PEM -P passphrase -N passphrase
(если ключ не зашифрован парольной фразой, используйте ""
вместо passphrase
)
PuTTYgen также может генерировать оба формата. Но, если вы не используете команду с"(принудительно установить новый формат файла)"или если вы не сгенерируете ключ Ed25519 (не поддерживается старым форматом), по умолчанию используется старый формат. Это также былоповедение ssh-keygen
в 6.5–7.7.
Кстати, есть ещекомандная строка Linuxputtygen
.