Якщо ви схожі на мене і у вас багато машин для розробки (віртуальні машини) з різних причин, ви можете комбінувати ssh-ключі, розумний файл bash_profile та RCS на ваш вибір.
Я б по-друге, використовуючи nfs / samaba / sshfs. Одне зволікання - якщо у вас немає доступу до мережі постійно, то ви не можете отримати доступ до того, що вам потрібно (політ, відсутність wifi, брандмауери, проблеми з маршрутизацією тощо). Машини, які я синхронізую, не є одночасно доступними, але я хочу поділитися інформацією між ними.
Далі йдеться про те, як я пішов про це, запозичивши багато ідей з Інтернету.
.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. Іноді я вношу несприятливі зміни до сценаріїв або конфігурацій, і мені потрібно відкотити тощо.
Щось я хочу спробувати далі, це загорнути початковий вхід / налаштування в makefile, який я копіюю на нову машину. Тоді makefile може виконати роботу з налаштуванням ваших ключів, RCS тощо. Очевидно, що тут є деякі накладні витрати, але якщо ви закінчите налаштування багатьох машин, це:
- економія часу
- простіше тримати синхронізацію конфігурацій та особистих скриптів машин розвитку
- управління змінами скриптів та конфігурацій.
set background=dark
абоset background=light
те, чого жоден дистрибутив Linux не торкається і є абсолютно ненав’язливим для користувача. </sarcasm>