Если вы похожи на меня и у вас много машин разработки (в том числе и виртуальных) по разным причинам, вы можете комбинировать ssh-ключи, умный bash_profile и RCS по вашему выбору.
Во-вторых, я бы использовал nfs / samaba / sshfs. Одним из недостатков является то, что если у вас нет доступа к сети все время, то вы не можете получить доступ к тому, что вам нужно (полет, нет Wi-Fi, брандмауэры, проблемы с маршрутизацией и т. Д.). Машины, которые я синхронизирую, не все доступны одновременно, но я хочу поделиться информацией между ними.
Вот как я это сделал, позаимствовав много идей из Интернета.
.bash_profile может иметь что-то вроде этого
$HOME/bin/shell_ssh_agent
Я получил это из нескольких мест, но не могу найти ссылку на это сейчас. Файл shell_ssh_agent:
#!/bin/bash
SSH_ENV=$HOME/.ssh/environment
#echo "starting"
function start_agent {
#echo "reaping agents"
killall ssh-agent
#echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
#echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV}
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV}
#echo "sourced ssh env"
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent > /dev/null || { start_agent; }
else
start_agent;
fi
Теперь при первом входе вы настраиваете ключи. Выйдите и войдите, и это просто облегчит жизнь.
Поместите все свои сценарии в RCS, это упрощает синхронизацию машин для разработки. Я использую Git. Аутентификация с помощью git осуществляется через ssh, поэтому здесь также помогают ключи ssh. Обратите внимание, что в этот момент вы могли бы использовать что-то вроде NFS. Я все еще был бы поклонником RCS по причине, которую я упоминаю ниже.
Вариант использования
- войти в систему первый раз, ключи получить настройки
- если RCS не настроен, проверьте ваши личные сценарии (и обновите / объедините при необходимости, это может даже быть частью вашего .bash_profile, если вы этого хотите)
- редактировать vimrc, специальные скрипты и т. д. и фиксировать их
- при входе в систему на других машинах выполните обновление / слияние / оформление заказа. Это держит все в синхронизации; т.е. больше не нужно копировать файлы, которые вы иногда топаете и не хотите.
- В качестве дополнительной выгоды вы получаете мощь RCS. Я иногда делаю неблагоприятные изменения в скриптах или конфигах и мне нужно откатиться и тому подобное.
Что-то, что я хочу попробовать дальше, это обернуть начальный логин / настройку в make-файл, который я копирую на новый компьютер. Затем make-файл может выполнить настройку ваших ключей, RCS и т. Д. Очевидно, что здесь есть некоторые издержки, но если вы настроите много машин, это:
- экономия времени
- проще синхронизировать конфигурации и личные сценарии машин разработки
- управление изменениями в скриптах и конфигах.
set background=dark
илиset background=light
что-то, чего не касается ни один дистрибутив Linux и которое совершенно незаметно для пользователя. </ sarcasm>