Crea sito

Posts tagged ssh

How to sync your bashrc between servers

2

Sync out of the box – Sync your bashrc using a CVS

Sync your bashrc between servers

Sync your bashrc between servers

If you work on several Unix servers you may need to keep in sync your shell profile (bashrc, kshrc, zshrc, .profile, etc).

When available on the servers, you can use Rync, or if your servers are directly connected to Internet, you can use a CVS system (bazaar, git, cvs, svn) and store your user settings, for example, on github (Using Git and Github to Manage Your Dotfiles by Smalley Creative Blog).
Obviously you can also develop a script or a software that does something similar.

A nifty alternative, sync your bashrc with ssh

When you don’t want or you cannot use one of the above methods, an alternative is to use an awesome functionality of OpenSSH.

OpenSSH allow you to set a local command to be executed every time you successfully connect to a remote host.

We can use this functionality to just execute an scp of our .bashrc on each server we connect to.

$ cat .ssh/config
Host *
PermitLocalCommand yes
LocalCommand scp -q %d/.bashrc %h:

In this example we set for all the ssh connection (Host *) that we allow ssh to execute local commands (PermitLocalCommand yes). The command is specified in the last line, where %d is substituted by the local home directory and %h by the target host.

Using Host * is not a good idea except if you have a really basic and anonymous shell profile.

I usually have Host sections in my ssh/config file based on domain names (like *.simbiosi.org) and instead of a “naked” scp I advice to use a script that transfer a list of files only if they have not been synchronized previously (may be the subject of a future article)

The big advantage of using LocalCommand is that you don’t need to keep an inventory of the servers you connect to and neither setup manually all of them.

Secure Passwordless Logins with SSH Part 3

0

Secure Passwordless Logins with SSH Part 3

How to create passwordless logins to allow remote administration tasks securely with SSH – restricting possible actions for SSH identities.

SSH Senza password

0

La rete è piena di guide su come utilizzare l’agent di ssh e spesso la grande quantità di informazioni ne complica la comprensione.
Io ne scrissi una su LinuxDesktop un pò di mesi fà e lo scopo, più che altro, era di avere sempre a mia disposizione degli appunti veloci da utilizzare, spero che possa essere utile anche a voi.

Eccola con alcune modifiche sull’originale:

In ambienti sicuri l’accesso alle macchine di produzione, solitamente, avviene passando da una macchina “ponte” situata fuori dalla DMZ o via VPN. Cio’ permette agli amministratori di rendere le operazioni di monitoraggio e di gestione molto piu’ semplici e molto piu’ complicate per cracker, hacker e noi poveri utenti. Con ssh e’ possibile automatizzare il processo di autenticazione, vediamo come…

Chiamerò l’host da cui ci si collega “macchina ponte”

– Operazioni preliminari. 1. Generazione della chiave privata e della chiave pubblica. Collegarsi alla macchina ponte

[email protected]# ssh-keygen -t dsa -f ~/.ssh/id_dsa -C “[email protected]

-t dsa : specifica l’algoritmo da utilizzare per la generazione delle chiavi
-f ~/.ssh/id_dsa: il percorso e il file in cui salvare le chiavi (~ sta per $HOME)
-C “[email protected]” : e’ un commento Questo e’ il risultato del comando:

Generating DSA keys: Key generation complete.
Enter passphrase (empty for no passphrase): !!!! DIGITARE UNA PASSPHRASE !!!!
Enter same passphrase again: !!!! RIDIGITARE LA PASSPHRASE !!!!
Your identification has been saved in ~/.ssh/id_dsa
Your public key is:
1024 35 [really long string] [email protected]
Your public key has been saved in ~/.ssh/id_dsa.pub

2. Copia delle chiavi pubbliche sui server remoti Dalla macchina ponte:

[email protected]# cat ~/.ssh/id_dsa.pub | ssh [email protected] ‘cat – >> ~/.ssh/authorized_keys’

Idem per la authorized_keys2

[email protected]# cat ~/.ssh/id_dsa.pub | ssh [email protected] ‘cat – >> ~/.ssh/authorized_keys2’

5. Configurazione agent. – Inserire le seguenti linee in ~.bashrc (.profile per ksh e cugine)

SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS=”-s”
if [ -z “$SSH_AUTH_SOCK” -a -x “$SSHAGENT” ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap “kill $SSH_AGENT_PID” 0
fi

– Eseguire ssh-add per aggiungere la chiave all’agent

[email protected]# ssh-add

A questo punto se fate

[email protected] # ssh-add
Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)

Non vi verrà chiesta la password Sicurezza: La cartella .ssh deve avere permission 700 e i file al suo interno 600

[email protected]# chmod 700 .ssh
[email protected]# chmod 600 .ssh/*

Conservate la chiave privata gelosamente!!!”

Go to Top