SSH!
SSH è il comando di dio - penso che sia il comando più prezioso da imparare. Le opzioni possono essere piuttosto scoraggianti, ma sembra che io impari costantemente ad usare nuove opzioni della riga di comando per SSH che non avrei mai pensato fossero necessarie. Potrei averli usati tutti a questo punto.
Più lo usi, più ne impari. Puoi usarlo per fare alcune cose INCREDIBILI.
Nota: TUTTE queste cose sono eseguibili in remoto senza alcuna configurazione sul server tranne che per avere il server SSH in esecuzione.
Montare un file system su Internet
cerca in rete SSHFS
Comandi avanzati .
Il protocollo SVN + SSH è Subversion da un client remoto a un server su cui NON è in esecuzione DEAMON! Il comando SVN avvia il server attraverso la shell ssh e passa le informazioni avanti e indietro attraverso la pipe esistente. Il programma rsync fa la stessa cosa, gira su un server senza alcun rsync deamon avviandolo da solo tramite SSH. È facile scrivere i tuoi file bash per fare trucchi simili.
Catena per superare i firewall
Lo uso sempre per passare dal mio server Linux a casa al mio mac.
Porte forward:
sembra solo moderatamente utile finché non ti rendi conto che puoi rimbalzare attraverso il firewall di casa e configurare il router a casa dal lavoro come se lo stessi facendo all'interno della tua rete domestica).
Inoltra richieste X:
Questo è un altro fantastico. Con o senza un server X in esecuzione sul tuo sistema remoto, puoi eseguire un programma x-windows e la finestra apparirà sullo schermo locale. Basta usare l'interruttore -X, tutto qui!
Poiché non è necessario disporre di un server X in esecuzione sul server remoto, l'impatto della CPU sul server è minimo, è possibile disporre di un server TINY Linux che offra enormi app al tuo potente PC di gioco con Windows e Cygwin / X.
Naturalmente VI ed EMACS funzionano su SSH, ma quando corro a casa, a volte ne voglio di più. Uso ssh -X per avviare una copia di Eclipse! Se il tuo server è più potente del tuo laptop, hai la GUI posizionata proprio lì sul tuo laptop, ma le compilazioni sono fatte sul tuo server, quindi non preoccuparti del caricamento del sistema.
Esegui in file batch
(significa eseguire un file batch locale che "fa cose" su altri sistemi):
Due cose si combinano per rendere questo fantastico. Uno è che è possibile eliminare le richieste di password utilizzando chiavi di crittografia (più sicure). Il secondo è che è possibile specificare un comando sulla CLI SSH. L'ho usato in alcuni modi interessanti - Come quando una compilazione fallisce sul server remoto, la vorrei inserire nel mio computer e riprodurre un file audio).
Ricorda che puoi reindirizzare l'output dal comando remoto e usarlo all'interno del tuo file batch locale, in modo da poter anche localizzare localmente una compilazione in esecuzione sul tuo server.
Integrato su Mac
Sia il server che il client sono integrati sia in mac che in linux. Nel caso di Mac e Ubuntu, abilitare un server è semplice come trovare la casella di controllo corretta.
Su un PC installa cygwin o cygwin / X (cygwin / X ti consentirà di inoltrare l'output di x-window dal tuo computer Linux al tuo PC Windows - installa un server X)
Suggerimenti / file di configurazione importanti
Non utilizzare mai la porta 22 sul firewall. Avrai un sacco di tentativi di hacking, non ne vale la pena. Chiedi al firewall di inoltrare una porta diversa al tuo server.
Esistono numerose opzioni di configurazione che ti consentono di semplificare in modo significativo i tuoi comandi ssh. Ecco un mio esempio al lavoro:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Quando digito "ssh home" (nient'altro), si comporta come se avessi digitato:
ssh -p 12345 bill@billshome.hopto.org
e quindi inoltra la mia porta locale 1025 al mio sistema "mac" a casa. Il motivo è che ho un'altra voce nel mio file:
Host mac
hostname localhost
port=1025
così una volta che ho fatto una "ssh home" e ho ancora la finestra aperta, posso digitare "ssh mac" e il computer al lavoro qui proverà effettivamente a connettersi alla propria porta 1025 che è stata inoltrata a "mac: 22 "dall'altro comando, quindi si collegherà al mio Mac a casa attraverso il firewall.
Modifica - bel copione!
Ho scoperto una vecchia sceneggiatura che adoro, dovevo tornare e pubblicarla per chiunque fosse interessato. Lo script si chiama "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Se hai questo script nella tua home directory e c'è un host a cui puoi connetterti (tramite ssh), allora puoi digitare "./authMe hostName".
Se necessario, creerà una coppia di chiavi pubblica / privata per te, quindi si sposterà sull'altra macchina e copierà la tua chiave pubblica (il comando ssh ti chiederà una password ...)
Dopodiché, il comando SSH non dovrebbe più chiedere la tua password quando ti colleghi a quel sistema remoto, userà la coppia di chiavi pubblica / privata.
Se il tuo computer remoto non è sempre sicuro, dovresti considerare di impostare una "passphrase" quando richiesto.
È inoltre possibile configurare il server SSH sul lato remoto per non consentire le password di testo (solo chiavi) per maggiore sicurezza.