Se sei come me e hai molte macchine di sviluppo (anche macchine virtuali) per vari motivi, puoi combinare chiavi ssh, un bash_profile intelligente e un RCS di tua scelta.
Vorrei in secondo luogo usare nfs / samaba / sshfs. Uno svantaggio è se non si ha sempre accesso alla rete, quindi non è possibile accedere a ciò di cui si ha bisogno (volare, niente wifi, firewall, problemi di routing, ecc.). Le macchine che mantengo sincronizzate non sono tutte raggiungibili contemporaneamente, ma voglio condividere le informazioni tra loro.
Quello che segue è come l'ho preso in prestito molte idee da Internet.
.bash_profile potrebbe avere qualcosa del genere
$HOME/bin/shell_ssh_agent
L'ho preso da un paio di posti ma non riesco a trovare un link adesso. Il file 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
Ora al primo accesso hai impostato le tue chiavi. Disconnettersi e accedere e ha appena semplificato la vita.
Metti tutti i tuoi script in un RCS, questo rende più semplice la sincronizzazione delle macchine di sviluppo. Uso git. L'autenticazione con git avviene tramite ssh, quindi anche le chiavi ssh aiutano qui. Nota a questo punto avresti potuto usare qualcosa come nfs. Sarei ancora un fan di un RCS per un motivo che cito di seguito.
Il caso d'uso è
- accedi la prima volta, le chiavi ottengono la configurazione
- se RCS non è impostato, controlla i tuoi script personali (e aggiorna / unisci quando necessario, questo potrebbe anche far parte del tuo .bash_profile se lo desideri)
- modifica vimrc, script speciali, ecc. e commettili
- quando si accede ad altri computer, eseguire un aggiornamento / unione / checkout. Questo mantiene tutto sincronizzato; cioè non più copiando i file che a volte ti calpestano e non volevi.
- come vantaggio laterale ottieni la potenza di un RCS. A volte apporto modifiche sfavorevoli a script o configurazioni e devo eseguire il rollback e simili.
Qualcosa che voglio provare dopo è racchiudere il login / setup iniziale in un makefile che copio sulla nuova macchina. Il makefile può quindi fare il lavoro di impostazione delle tue chiavi, RCS, ecc. Ovviamente c'è un sovraccarico qui, ma se finisci per configurare un sacco di macchine questo è:
- un risparmio di tempo
- più facile mantenere sincronizzate le configurazioni e gli script personali delle macchine di sviluppo
- gestione delle modifiche a script e configurazioni.
set background=dark
oset background=light
qualcosa che nessuna distribuzione Linux tocca ed è completamente discreto per l'utente. </sarcasm>