Ключ SSH - все ще просять пароль і пароль


494

Я дещо "мирився" з Github і завжди просив моє ім'я користувача та пароль, коли я клонував сховище. Я хочу обійти цей крок, тому що це роздратування в моєму робочому процесі.

Я спробував налаштувати ключ SSH (що я успішно зробив) за допомогою цього посібника. https://help.github.com/articles/generating-ssh-keys і я досяг успіху.

Моя проблема полягає в тому, що мені все-таки запитують пароль github і парольну фразу під час клонування сховища (за допомогою SSH). Я розумів, що після встановлення цього ключа SSH мені більше не доведеться цього робити.

Я трохи не впевнений, що просити, тому я просто зазначу свою мету.

Я хочу мати змогу клонувати сховища, не маючи постійно вносити в мене інформацію про Github .

Що мені не вистачає з ключем SSH? Якщо хтось може надати якісь рекомендації чи ресурси, я би вдячний, тому що я завжди відчував себе трохи втраченим, коли мова зайшла про автентифікацію SSH в GitHub.

Наскільки мені відомо, це команда, яка перевіряє, чи все працює належним чином, ось вихід з моєї консолі:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Коли я ввожу свій пароль, чи повинен цей помилка спочатку? Потім, коли я ввожу свою парольну фразу, вона проходить.


1
В якій ОС ви знаходитесь? Сучасний робочий стіл Linux запропонував би зберегти вашу парольну фразу в менеджері керування ключами. Те саме в Mac OS X. У Windows можна використовувати pageant, що є частиною putty. У всіх цих цілях одна і та ж: ви вводите парольну фразу лише один раз після запуску ПК, агенти менеджера ключів передадуть її в ssh при наступному використанні до перезавантаження.
janos


2
Я трохи запізнююсь на вечірці тут, але на маленькій вкладці / кнопці клону в github є посилання, що говорить "Використовувати SSH". Ви хочете це зробити. Це змінює ваше клонове посилання на щось на кшталт "git @ github: username / project.git". Якщо ви додали ключ SSH до github і він локально працює на ssh-агенті, вам слід мати можливість натиснути, не вводячи ім’я користувача або пароль.
Кухня Логан

Відповіді:


201

Якщо ви працюєте з HTTPsURL-адресами, вона завжди запитуватиме ваше ім’я користувача / пароль.

Якщо ви правильно користуєтесь SSH під час клонування / налаштування віддалених. Потім переконайтеся, що у вас є ssh-агент, щоб запам'ятати свій пароль. Таким чином, ви введете свою парольну фразу лише один раз термінальним сеансом.

Якщо це все ще занадто дратує, просто встановіть ssh-ключ без парольної фрази.


2
дякую за відповідь. Я завжди просто використовував HTTP. Я намагаюся домогтися аутентифікації SSH і думав, що його встановив. Чи потрібно мені встановити ssh-агент за межами git? Спасибі
HelloWorld

1
@ R11G ви не можете, інакше паролі не будуть захищені ... Просто відновіть новий.
Саймон Будріас

50
Я просто хочу зазначити, що парольні фрази використовуються для шифрування вашого приватного ключа, тому якщо ви не використовуєте парольну фразу, ваш приватний ключ буде нешифрований на вашій машині. Це як залишити пароль у текстовому файлі, що лежить на вашому комп’ютері.

2
Смішно, мої репортажі HTTPS ніколи не просять паролів, а мої репортажі SSH завжди роблять.
Адам

33
Дивіться цей документ github для перетворення віддаленої URL-адреси з https в ssh. Щоб перевірити, чи URL-адреса віддаленого файлу ssh чи https, використовуйте git remote -v. Для переходу з https на ssh:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Manavalan Gajapathy

824

Додайте особистість без брелка

Можливо, буває, що ви не хочете, щоб парольна фраза зберігалася в брелоку, але не потрібно вводити парольну фразу знову і знову.

Ви можете зробити це так:

ssh-add ~/.ssh/id_rsa 

Це попросить вас пройти фразу, введіть її, і вона не буде запитувати знову, поки ви не перезапустите.

Додати ідентичність за допомогою брелка

Як @dennis в коментарях вказує, щоб зберегти парольну фразу через перезавантаження, зберігаючи її у вашому брелоку, ви можете використовувати -Kопцію ( -kдля Ubuntu) при додаванні ідентичності таким чином:

ssh-add -K ~/.ssh/id_rsa

Знову це запитає у вас парольну фразу, введіть її, і цього разу вона ніколи більше не запитуватиме цю особу.


178
Зауважте, що це не буде зберігати ідентичність при перезапуску. Ви можете використовувати -Kопцію для зберігання парольної фрази у вашому брелоку при додаванні, наприкладssh-add -K ~/.ssh/id_rsa
Dennis

29
нижній регістр -kдля мене ... (Linux Mint / Ubuntu 14.04 база), але так! нарешті сортував це ...
Луї Маддокс

8
просто запустивши команду "ssh-add" і введіть пароль один раз, командний рядок не запросить вас знову для пароля.
АВІНАШ ШРИМАЛІ

14
Вам не потрібні аргументи; щойно запущений ssh-addавтоматично додасть ~/.ssh/id_rsa(серед інших файлів). І немає ніяких причин відправляти вихід /dev/null; набагато краще бачити звіт про те, що він робив.
Тед Хопп

6
Будь-яка ідея, чому я отримую "Не вдалося відкрити з'єднання з вашим агентом аутентифікації."
докаспар

251

На Mac OSX ви можете додати свій приватний ключ до брелка за допомогою команди:

ssh-add -K /path/to/private_key

Якщо ваш приватний ключ зберігається в ~ / .ssh і називається id_rsa:

ssh-add -K ~/.ssh/id_rsa

Потім вам буде запропоновано ввести пароль, який буде зберігатися у вашому брелоку.

Редагувати - обробляти перезапуск

Щоб не довелося заповнювати свій пароль навіть після перезавантаження, додайте наступне у файл налаштування ssh (зазвичай розташований за адресою ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

7
У моєму випадку це все ще вимагає ввести парольну фразу після перезавантаження (macOS Sierrra 10.12.2). Будь-які ідеї, як це вирішити?
inigo333

9
Не забудьте, я щойно знайшов проблему. Це помилка (особливість?) З Mac OS X 10.12, в якій ssh-агент не завантажує автоматично парольні фрази на брелок під час запуску. github.com/lionheart/openradar-mirror/isissue/15361
inigo333

2
@ inigo333 цікаво. Я щойно оновив і сам помітив це!
Грут

1
@Groot, BTW, додаючи "Host * UseKeychain yes" до "~ / .ssh / config", як це пропонується в інших відповідях, виправляє проблему.
inigo333

1
Це має бути прийнятою відповіддю. Спеціально конфігураційний файл у~/.ssh
Xavi

186

Я спробував усі відповіді тут, і жодна з цих відповідей не спрацювала ! Мій пароль не зберігатиметься між сесіями / перезавантаженнями мого Mac.

Що я дізнався, прочитавши цей OpenRadar і цю дискусію в Twitter, це те, що Apple навмисно змінила поведінку для ssh-агента в macOS 10.12 Sierra, щоб більше не автоматично завантажувати попередні SSH ключі. Щоб зберегти таку ж поведінку, як і El Cap, я зробив наступне:

  1. ssh-add -K ~/.ssh/id_rsa
    Примітка. Змініть шлях до того, де знаходиться ваш ключ id_rsa.
  2. ssh-add -A
  3. Створіть (або відредагуйте, якщо він існує) наступний ~/.ssh/configфайл:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

І тепер мій пароль запам'ятовується між перезавантаженнями мого Mac!


2
Це може бути корисним додати на сторінки документації github чи osx . Найскладніше було зрозуміти, чому мій Mac працює 10.11, а інший працює 10.12, де поводиться інакше.
Гр

5
Сталося зі мною після оновлення OSX, дякую (я думаю ssh-add -A, не потрібно, якщо у вас є лише одна клавіша ~/.ssh/id_rsa)
Доріан

1
Це неймовірно корисна відповідь. Спасибі, ти зробив мій день.
Ян Неш

2
З жовтня 2017 року ця відповідь саме те, що ви шукаєте, якщо ви використовуєте macOS 10.12 або новішої версії.
брограммер

3
І це зараз на документах github: help.github.com/articles/…
Todd Ціна

35

Ви можете видалити пароль для ключа

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

або ти можеш бігати

$ ssh-keygen -p

Ви отримуєте підказку для файлу ключів. За замовчуванням це ~/.ssh/id_rsaтак натисніть Enter

Вам буде запропоновано ввести його поточну фразу пропуску.

Потім з'явиться запит на нову фразу пропуску, натисніть клавішу Enter


Це має бути вище, ніж у багатьох майже однакових відповідей для додавання парольної фрази до брелка. Я повинен був дати свій відкритий ключ адміністратору, і він включив парольну фразу, яка щоразу стає прикрою. Це чисте рішення , якщо у вас немає великої контроль над вашою машиною ( -K, -k, -Aне працює для мене).
gwg

1
Це єдине, що працювало для мене під час перезавантаження, усі команди ssh-add -K, -k тощо не зробили для мене нічого.
Амальговінус

28

Просто запустіть таку команду:

ssh-add -K

Він ніколи не попросить вас знову ввести пароль.


3
Це чудово працює, але мене трохи непокоїть виконання випадкової команди. Однак, якщо ви перевіряєте документи, ssh-addпросто "додає ідентифікатори приватного ключа агенту аутентифікації", а -Kопція просто робить це "При додаванні ідентифікацій кожна пропускна фраза також буде зберігатися у брелоку користувача".
machineghost

8
Насправді це було виправлено лише до того моменту, коли я перезапустив :(
machineghost

5
в оболонці bash для Windows прапор "-k" повинен бути малі. Просто FYI
Фергюс

27

Переконайтеся, що ви також використовуєте ssh для вашого сховища

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)

введіть тут опис зображення

Не використовуйте https, якщо ваш пульт використовує https, він продовжує запитувати пароль, навіть якщо ви додали відкритий ключ до Github та додали приватний ключ до ssh-агента. Нижче завжди буде просити пароль

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)


Так, для мене було корисно розмежування двох типів віддалених URL-адрес . Це допомогло мені з точки зору git pullта git push. Я перейшов мій URL з типу HTTPS на тип SSH, і він спрацював - git pullперестав просити пароль.
Michael R

1
Перемикання можна здійснити за допомогою цієї команди:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
guideo

17

Мені довелося виконати:

eval `ssh-agent -s`
ssh-add

Примітка : Вам доведеться зробити це знову після кожного перезавантаження. Якщо ви хочете цього уникнути, тоді введіть його у файл " .bashrc ", який знаходиться у C:\Users\<<USERNAME>>\.bashrcWindows. Це, ймовірно, приховано, тому переконайтеся, що ви можете бачити приховані файли.

Тут знайдено рішення .


15

Якщо ви використовуєте Windows, це працювало для мене:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Він попросить пройти фразу в другій команді, і все.


1
Під час виходу та перегляду журналу вам доведеться щоразу вводити пароль.
trainoasis


11

Вам потрібно використовувати агент ssh.
TL; DR : відкрити термінал і спробувати

ssh-add

перед натисканням. Коли буде запропоновано, введіть свою парольну фразу.

Ознайомтесь з оригінальною відповіддю StackExchange тут


6

Нещодавно я модернізував до macOS Mojave і встановив деякі інструменти через домашню програму, яка, здавалося, замінила версію Apple ssh-addна іншу. У моїй версії за замовчуванням ssh-add не було -Kможливості. Це призвело до наступної помилки:

# ssh-add: illegal option -- K

Ви можете побачити, яка версія у ssh-addвас є, запустивши which ssh-add.

(Шахта зберігалася в /usr/local/bin/ssh-add)

Щоб виправити це, мені довелося вказати ключ на версію Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub згодом спрацював ідеально. Для отримання додаткової інформації див: Помилка: ssh-add: незаконний варіант - K


Була така ж проблема в моєму iMac з High Sierra 10.13.6 - це працювало для мене. Дякую!
emccracken

Шахта добре працювала, і випадково знову почала просити парольні фрази - можливо, це було після недавнього оновлення. Це це виправило! Дякую
mc01

5

Для Mac OSX Sierra я виявив, що виправлення, запропоновані у випуску github для Open Radar, вирішили мою проблему. Схоже, Сьєрра змінила поведінку за замовчуванням (у мене почалася ця проблема після оновлення).

Цей мені здався особливо корисним: https://github.com/lionheart/openradar-mirror/isissue/15361#issuecomment-249059061

ssh-add -A 

Це призвело до того, що моя особа була додана агенту після того , як я побіг

ssh-add -K {/path/to/key}

Підводячи підсумок, в OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

має призвести до:

Identity added: {/path/to/file} ({/path/to/file})

EDIT: Я помітив наступного разу, коли я здійснив повне перезавантаження (він же агент зупинився і перезапустив), це більше не працювало. Більш повним рішенням є те, що @ChrisJF згадано вище: створення ~/.ssh/configфайлу. Ось результат шахти:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Ви можете додати стільки IdentityFileзаписів, скільки вам потрібно, але це налаштування за замовчуванням. Це "тренд" відповідь на openradar посилання вище, банкомат, а також.


Редагований вирішив мою проблему. MacOS Mojave 10.14.3
Хосе

4

Працював у LinuxMint / Ubuntu

Виконайте наступні дії

Крок 1:

Перейти до файлу => /.ssh/config

Збережіть рядки нижче у файл

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Не забудьте додати цей рядок AddKeysToAgent так

Крок 2:

Відкрийте термінал і додайте набір клавіш до ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

надайте фразу.


3

Я вже встановив фразу, але чомусь вона більше не розпізнає її. Тому я просто додав файл ідентифікації до своєї брелки знову, використовуючи, ssh-add -Kі він перестав просити мій пароль.


це завантажує лише ключі, а не сертифікати
numediaweb

3

Це для мене працювало:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

2

Здається, проблема полягає в тому, що ви клонуєте з HTTPS, а не з SSH. Я спробував усі інші рішення тут, але все ще відчував проблеми. Це зробило це для мене.

Використовуючи osxkeychain helperподібне так:

  1. Дізнайтеся, чи встановлено він.

    git credential-osxkeychain

  2. Якщо він не встановлений, вам буде запропоновано завантажити його як частину інструментів командного рядка Xcode.

  3. Якщо він встановлений, скажіть Git використовувати osxkeychain helperза допомогою глобальної credential.helperконфігурації:

    git config --global credential.helper osxkeychain

Наступного разу, коли ви клонуєте URL-адресу HTTPS, вам буде запропоновано ім’я користувача / пароль та надати доступ до брелка OSX. Коли ви це зробите вперше, його потрібно зберегти у вашому брелоку, і вам не доведеться вводити його знову.


2

Ця відповідь в першу чергу для користувачів Windows, а також не менш актуальна, якщо у вас виникають проблеми з клонуванням tfs, github або gitlab в будь-якій іншій ОС.

Режим аутентифікації за замовчуванням при використанні SSH - це приватний ключ. Коли це не вдається з якихось причин, ssh-агент повертається до автентифікації на основі імені користувача та пароля.

Існує декілька причин, через які автентифікація на основі ключа за замовчуванням може не відбутися. Нижче наведені найпоширеніші випадки:

a) ssh-агент не може знайти файл приватного ключа за замовчуванням, який є id_rsa , і жоден інший шлях ключа не вказаний явно.

b) Публічний ключ, збережений на сервері, неправильний.

в) Шлях, який ви намагаєтесь клонувати, неправильний.

У будь-якому випадку, для усунення проблеми насамперед виконайте команду git clone за допомогою багатослівного ведення журналу за допомогою команди:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Ви можете пройти кожен етап у журналі, щоб зрозуміти, у чому полягає проблема.


Усунення несправностей у випадку (а)

  • Переконайтеся, що у каталозі .ssh є ім'я ключа за замовчуванням id_rsa. Можливо, ви вказали якесь інше ім'я ключа, коли генеруєте ключ за допомогою команди ssh-keygen, або, можливо, взагалі немає жодного ключа).
  • Якщо ви хочете вказати інший ключ для аутентифікації, скористайтеся такою командою:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Усунення несправностей у випадку (b)

  • Перевірте, чи немає зайвих пробілів під час зберігання відкритого ключа на сервері.

Усунення несправностей у випадку (c)

  • Переконайтеся, що ви не намагаєтесь клонуватися за допомогою https версії шляху сховища.

1

Якщо ви використовуєте ssh url для git, при появі запиту на пароль для ssh введіть ім'я користувача як " git ", а пароль як пароль для входу в систему.


Зміна типу віддаленої URL-адреси сховища HTTPSна SSHвирішену мою проблему. Дякую @MichaelR, твоя стаття була дуже корисною, хоча я нічого з неї не читав: D
Geradlus_RU

1

Я хотів би додати відповідь для тих, хто, можливо, ще повинен ввести пароль, оскільки вони встановили IdentitiesOnly як "так". Це може спричинити кілька клавіш та файл посвідчення, будучи ключами для git чи сервера.

Після того як я згенерував ключ і скопіював його на сервер:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub lerner@192.168.20.160

Я виявив, що це не працює.

Потім я пішов перевірити ~/.ssh/configфайл, побачив це внизу:

Host *
IdentitiesOnly yes

Потім я додаю це вище:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Я можу просто увійти, ввівши ssh 12gpu.

Тоді ви можете додати декілька клавіш ssh, використовуючи улюблені імена, і вам потрібно лише додати налаштування, подібні до наведених вище чотирьох рядків, у файл конфігурації.

Хост - це ім'я, яке ви хочете ввести під час підключення до сервера пізніше; HostName є IP - сервера або домену , як github.com; Користувач - це ім'я користувача, на якому ви входите на сервер, як ім’я користувача або git для github або gitlab; і IdentityFile - це файл, в якому ви зберігаєте створений вами ключ.


1

Як правило, ось такі кроки, які дозволять вам зробити віддалене підключення до вашого сервера за допомогою ssh без пароля:

  • Створіть пару приватного та відкритого ключа rsa

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Скопіюйте свій відкритий ключ та увійдіть на віддалений сервер

  • Додайте свій відкритий ключ до .ssh / autorizirane_keys

  • Якщо у вас на комп’ютері кілька ключів ssh, ви можете додати свій ключ за допомогою ssh-add

    $ ssh-add /path/to/private/key

  • Потім спробуйте ssh на своєму сервері

    $ ssh username@your_ip_address

Джерело: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html



0

Якщо ви використовуєте Windows та GIT без сторонніх інструментів, а ваш ключ не захищений паролем / парольною фразою, скористайтеся цим:

  1. ДОМАШНЄ Змінне середовище має бути встановлено у вашому профілі користувача (наприклад, C: \ Users \ Laptop)
  2. Перейдіть до папки C: \ Users \ Laptop \ .ssh \ і відредагуйте файл "config" (або створіть файл!) Приклад: C: \ Users \ Laptop.ssh ​​\ config (зверніть увагу: в кінці немає!)
  3. Додайте хост git-сервера у файл "config" так:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Збережіть файл і клонуйте сховище так:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

Ви можете використовувати додаткові параметри конфігурації для запису хосту файлу "config". Їх можна знайти у вашій локальній папці установки git, наприклад, " C: \ Program Files \ Git \ etc \ ssh \ ssh_config ". Витяг:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

0

Та сама проблема і для мене була:

Дивіться цей документ github для перетворення віддаленої URL-адреси з https в ssh. Щоб перевірити, чи URL-адреса віддаленого файлу ssh чи https, використовуйте git remote -v. Для переходу з https на ssh: git віддаленого набору URL-адреса git@github.com: USERNAME / REPOSITORY.git @jeeYem


0

Mobaxterme мав для нього інтерфейс інтерфейсу користувача

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]


0

Ключ SSH - все ще просять пароль і пароль

Якщо в Windows і використовується PuTTY як генератор ключів SSH , це швидке та просте рішення виявилося для мене єдиним робочим рішенням, що використовує звичайний командний рядок Windows:

  1. Ваша установка PuTTY повинна мати декілька виконуваних файлів, серед інших, pageant.exeтаplink.exe
  2. При генерації ключа SSH за допомогою PuttyGen ключ зберігається з .ppkрозширенням
  3. Виконати "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( обов’язково цитувати). Це виконає pageantпослугу та зареєструє ваш ключ (після введення пароля).
  4. Встановити змінну середовища GIT_SSH=full\path\to\plink.exe( не слід цитувати). Це перенаправить команди, пов’язані з git ssh-communication, на plinkте, що використовуватиме pageantсервіс для аутентифікації, не запитуючи знову пароль.

Готово!

Примітка1: Ця документація попереджає про деякі особливості при роботі з GIT_SHHналаштуваннями змінної середовища. Я можу push, pull,fetch з будь-якою кількістю додаткових параметрів в команді і все працює просто відмінно для мене (без необхідності писати додатковий скрипт , як це було запропоновано в ньому).

Примітка2: Шлях до PuTTYвстановлення зазвичай є PATHтаким, що може бути пропущений. У будь-якому випадку я вважаю за краще вказувати повний шлях.

Автоматизація:

Наступний пакетний файл можна запустити перед використанням git з командного рядка. Він ілюструє використання налаштувань:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

У будь-якому випадку, у мене встановлена GIT_SSHзмінна SystemPropertiesAdvanced.exe > Environment variablesта pageant.exeдодана якRun ключ реєстру (*).

(*) Крок для додавання Runключа реєстру>

  1. бігати regedit.exe
  2. Перейдіть до HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Зробити (меню) Edit > New > String Value
  4. Введіть довільну (але унікальну) назву
  5. Виконайте (меню) Edit > Modify...(або двічі клацніть)
  6. Введіть шлях, що додається до лапок, pageant.exeі public key, наприклад, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(зауважте, що %ProgramFiles%змінні тощо тут не працюють, якщо не вибрати Expandable string valueзамість String valueкроку 3).

0

Як пояснено у клонуванні Git repo від VSTS через SSH, запитує пароль! Несподіване

Проблема може виникнути через помилку автентифікації відкритого ключа, тому вона запитує пароль облікового запису моєї компанії.

Це не відбудеться, якби аутентифікація відкритого ключа була успішною.

Тож ви можете перевірити id_rsa.pub і навіть створити новий.


-1

Я думаю, що відповідь @sudo bangbang слід прийняти.

Коли ви генеруєте ключ ssh, ви просто натискаєте клавішу "Enter", щоб пропустити введення пароля, коли він запропонує вам налаштувати пароль.

Це означає, що вам НЕ ПОТРІБНІ пароль під час використання ключа ssh, тому пам’ятайте, коли генеруєте ключ ssh, НЕ вводите пароль, просто натисніть «Enter», щоб пропустити його.


1
Це дуже погані пропозиції. Дивіться коментар @ user456814
Sos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.