MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Настройка SSH
09.09.2016
09:37
Автор: pola
Текстовые метки: git.info
Раздел: Программирование - git

## Установка SSH (secure shell) для git

При использовании протокола https при каждом подключении к Bitbacket требуется авторизация (например, при выполнении команды git push).

Чтобы не вводить пароль каждый раз создается ключ SSH и прописывается в настройках пользователя Bitbacket.

* Инструкция

Шаг 1. Проверить, что установлен клиент SSH

Можно проверить из GitBash (клиент SSH встроен в GitBash)

Если клиент SSH установлен, то результатом ввода команды <ssh -v> будет информация о версии.

a.polischuk@polischuk-a MINGW64 /

$ ssh -v

usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]

[-D [bind_address:]port] [-E log_file] [-e escape_char]

[-F configfile] [-I pkcs11] [-i identity_file]

[-L address] [-l login_name] [-m mac_spec]

[-O ctl_cmd] [-o option] [-p port]

[-Q cipher | cipher-auth | mac | kex | key]

[-R address] [-S ctl_path] [-W host:port]

[-w local_tun[:remote_tun]] [user@]hostname [command]

Шаг 2. Установить аутентификацию по-умолчанию

* запустить GitBash

* ввести команду <ssh-keygen>

* не указывать путь для сохранения ключа. По-умолчанию файлы будут созданы в "~/.ssh"

$ ssh-keygen.exe

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/a.polischuk//.ssh/id_rsa): anatolean4bitbucket

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in anatolean4bitbucket.

Your public key has been saved in anatolean4bitbucket.pub.

The key fingerprint is:

SHA256:csep7ze8mibnRnJ/W1Nj1Tk2ucs84Il72qvAX0nxZ/E a.polischuk@polischuk-a

The key''s randomart image is:

+---[RSA 2048]----+

| |

| +|

| . Bo|

| . . + B|

| . S + o =E|

| oooo + B.=|

| .* + = *.|

| ..*.O...o|

| B*B=*o. |

+----[SHA256]-----+

* проверить созданные файлы

$ ls ~/.ssh

id_rsa id_rsa.pub

Шаг 3. Создание конфигурационного файла для SSH

* создать файл ~/.ssh/config

* заполнить файл

Host bitbucket.org

IdentityFile ~/.ssh/id_rsa

Вторая строка должна отстоять от первой ровно на один пробел!!!

* сохранить и закрыть файл

* перезапустить GitBash

Шаг 4. Обновление файла настроек .bashrc

Для того, чтобы ssh-служба запускалась при каждом старте GitBash внести следующие изменения в файл .bashrc

SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent

function start_agent {

echo "Initializing new SSH agent..."

# spawn ssh-agent

/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"

echo succeeded

chmod 600 "${SSH_ENV}"

. "${SSH_ENV}" > /dev/null

/usr/bin/ssh-add

}

if [ -f "${SSH_ENV}" ]; then

. "${SSH_ENV}" > /dev/null

ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {

start_agent;

}

else

start_agent;

fi

"

Если файл .bashrc отсутствует, то создать руками в домашней директории пользователя (/c/users/a.polischuk)

* сохранить и закрыть файл

* перезапустить GitBash

* при старте ssh-агента будет зарегистрирован личный ssh-ключ. Если была введена контрольная фраза при создании личного ключа, то система попросит

ввести этот ключ

* проверить регистрацию ключа

$ ssh-add -l

2048 0f:37:21:af:1b:31:d5:cd:65:58:b2:68:4a:ba:a2:46 /Users/manthony/.ssh/id_rsa (RSA)

После установки публичного ключа на bitbucket наличие скрипта аутентификации избавит от необходимости указывать каждый раз пароль.

Шаг 5. Установка публичного ключа в профиле bitbucket

* открыть настройки пользователя через <avatar-bitbucket settings>

* нажать на <SSH keys>

* в терминале GitBash отобразить содержимое файла публичного ключа

$ cat ~/.ssh/id_rsa.pub

* выделить и скопировать в буфер памяти содержимое файла публичного ключа

* вернуться в браузер и указать заголовок нового ключа, например <Default publik key>

* вставить содержимое буфера памяти в поле <SSH key>

* нажать <Add key>

* вернуться в терминал GitBash и проверить настройки командой

$ ssh -T git@bitbucket.org

Системное сообщение сообщит о том, какой аккаунт bitbacket может подключаться с этим ключом

Проверить, что выводиться имя вашего аккаунта.

Шаг 6. Настроить свой репозиторий на использование протокола SSH.

* открыть файл настроек git репозитория

* указать вместо url в формате https url в формате ssh

# https://anatolean@bitbucket.org/anatolean/mytetra.git

git@bitbucket.org:anatolean/mytetra.git

Шаг 7. Внести изменнеия в проект по новому протоколу

* изменить readme.md

* закоммитить readme.md с комментарием

git commit -m "making a change under the SSH protocol"

* передать изменения на сервер

$ git push

Counting objects: 5, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 287 bytes, done.

Total 3 (delta 1), reused 0 (delta 0)

remote: bb/acl: newuserme is allowed. accepted payload.

To git@bitbucket.org:newuserme/bb101repo.git

056c29c..205e9a8 master -> master

← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования