Рано или поздно вы начнете работать с удаленными серверами. Не важно что это будет - виртуальный сервер или выделенный сервер. Я покажу вам как создавать ключи и пробрасывать их на удаленный компьютер. Вам нужно будет создать ключ, прописать настройки, отправить ключ rsa. Что дают ключи rsa? Вы при подключении к серверу не будите водить пароль. Если вы используете BASH скрипты, которые проникают на удаленные серверы, то вам не придётся каждый раз прописывать пароли. Самое главное - это удобная работа с github и bitbucket. Вам нужно сделать git push origin master и данные улетят на удалённый сервер и не надо вводить каждый раз пароль. Если вы питонист и используете технологию fabric, то вам необходимо использовать rsa ключи.
Приступим. Для начала нужно пробраться в папку ~/.ssh на вашем компьютере. Осмотрите папку при помощи команды ls
#пробираемся в папку с ключами
cd ~/.ssh
#осмотритесь
ls
#вывод
known_hosts *
known_hosts - это файл который принимает отправленные на ваш сервер ключи. Список известных ключей серверов хранится в этом файле. Если ваш компьютер не работает как публичный сервер, то можете в него не заглядывать. При публичном доступе к серверу у вас должен быть статичный ip-адрес на машине. Если вы находитесь на удаленном сервере то можете проверить этот файл на наличие вашего rsa ключа. Вы смотрите у себя rsa.pub публичный ключ и сверяйте его запись с записью в одной из строк known_hosts на удалённом сервере. Я запоминаю последние 4 цифры для сверки.
Теперь создаем первый ключ на вашем локальном компьютере. Вы можете задать имя ключу как вам захочется, но постарайтесь оставить в конце _rsa. Так вам проще будет определять ключи. Ни в коем случае не передавайте свой зашифрованный ключ по интернету друзьям и знакомым. Это все равно что давать знакомому банковскую карту с пин-кодом. Ваши сервера могут пострадать и вы не поймете кто напакостил на вашем сервере.
#генерация ключа
ssh-keygen -t rsa
#вас попросят ввести имя ключа, вводите имя_rsa
#пароль не вводите
#осмотритесь
ls
#вывод
known_hosts *_rsa *_rsa.pub
Вы создали два ключа. Один с *_rsa.pub - публичный ключ для отправки на удаленные сервера. Ключ без .pub на конце *_rsa - это зашифрованный ключ. Его никому не передавайте. Теперь задача простая связать ключи и сервера. Покажу вам свой файл config.
#осмотр файла
cat ~/.ssh/config
#вывод файла config
Host bitbucket.org
IdentityFile ~/.ssh/git_rsa
Host github.com
IdentityFile ~/.ssh/git_rsa
#создаем файл config и связываем ключи + ip
vim ~/.ssh/config
Поставьте свои настройки. Если у вас VDS сервер, то вместо названия сервера пропишите ip удаленного сервера. Теперь вам нужно перенести публичные ключи rsa на удаленный сервер. Для bitbucket.org и github.com нужно будет найти в профиле пункт ssh-key. Там нужно будет создать запись и вставить скопированный ключ в поле. Копирование ключа - это копирование текста из ключа rsa. Откройте публичный rsa ключ в текстовом файле и скопируйте содержимое. Так выглядит перенос на bitbucket.org и github.com.
На удаленный сервер проброс публичных ключей rsa выглядит иначе. Вам нужно запустить команду в консоли BASH.
#копирование ключа в буфер обмена
cat ~/.ssh/test_rsa.pub | xclip -sel clip
#проброс на боевой сервер
ssh-copy-id -i ~/.ssh/test_rsa.pub root@188.*.*.11
После ввода вас попросят ввести пароль пользователя. Советую пробросить как для root, так и для других пользователей. Теперь у вас есть удаленный доступ на сервер без пароля
#доступ на удаленный сервер
ssh root@188.*.*.11
Если вы имеете репозиторий на github, то нужно проверить урл вашего удаленного репозитория. Введите команду git remote -v и посмотрите на результат. Если у вас примерно такой репозиторий origin https://github.com/user123/test.git , то его нужно изменить на git@github.com:user123/test.git. Если вы не измените урл, то даже при проброшенных ключах rsa у вас будут запрашивать пароль на сервере github при отправке данных git push.
#смена урл для удаленного репозитория
git remote set-url origin git@github.com:user123/test.git