Memorizza in modo permanente gli indirizzi quando usi SSH


12

Ho alcuni server remoti a cui mi collego tramite il terminale. I server non hanno un dominio, solo un indirizzo IP che è difficile da ricordare quando ne ho presi alcuni.

C'è un modo per memorizzare permanentemente i valori nel terminale, in modo che io possa fare quanto segue?

server1 = 111.222.111.222

E digita comandi come:

ssh root@server1

invece di:

ssh root@111.222.111.222

Risposte:


22

Per le connessioni SSH, è possibile creare un file di configurazione utente ~/.ssh/confige posizionare lì i mapping, ad es

Host server1
  Hostname      111.222.111.222

Puoi facilmente aggiungere altri campi come Port(per porte non standard) e User(utile se il tuo nome utente sul sistema remoto differisce da quello sul sistema locale). Vedi man ssh_configper i dettagli completi.


14

Sì, basta annotarli nel file /etc/hosts. Ha la seguente sintassi:

1.2.3.4 servername additional_servername

Dove:

  • 1.2.3.4 è l'indirizzo IP
  • servername è il nome
  • additional_servername è un nome opzionale

Dopo il salvataggio, puoi raggiungere il server con il suo nome.


@theusual Se questa è la risposta che hai fornito, considera di accettarla (segno di spunta sotto i pulsanti di voto su / giù).
jpmc26,

8

Naturalmente per il tuo particolare problema vuoi seguire i consigli di @chaos e @steeldriver, ma nel caso generale, al fine di "memorizzare permanentemente valori nel terminale", stai cercando di shell shell. Come impostarli dipenderà dalla tua shell (immagino echo $SHELLfornirà le informazioni pertinenti).

Se per "permanentemente" intendi "fintanto che non esco da questa sessione terminale", puoi semplicemente usare il export server1=111.222.111.222comando se stai usando una bashshell basata su ( setenv server1 111.222.111.222per una csh/tcshshell basata su, se ricordo bene). Poi si può accedere alla variabile prefisso con $ : ssh root@$server1.

Se per "permanentemente" intendi "ogni volta che lancio un nuovo terminale", dovrai impostare la tua variabile in uno dei file init della shell. Ad esempio in shell basate su $HOME/.bashrcfor bash, o $HOME/.cshrc- presumibilmente usando la stessa sintassi menzionata nel paragrafo precedente. Si noti che sarà necessario originare il file init (ad es. source $HOME/.bashrcO aprire una nuova shell per prendere in considerazione le modifiche.

NB: la risposta dalla memoria potrebbe richiedere alcune piccole regolazioni.


2
Per impostazione predefinita, anche se riavviato il computer. Dare un'occhiata a questo, potrebbe tornare utile qualche volta.
normale

Quindi si applica il secondo metodo (file init shell).
Skippy le Grand Gourou,

1

Non una risposta diretta alla domanda (il caos e Steeldriver hanno già fornito quelle che penso siano le migliori soluzioni letterali), ma se nella maggior parte dei casi devi solo inviare a un utente l'indirizzo a un solo indirizzo, quindi guarda la modifica il .bash_aliasesfile nella home directory dovrebbe essere utile, in quanto è possibile creare un alias per l'intero comando del terminale.


0

Le risposte specifiche sono molto buone.

In generale, tuttavia, se si desidera avere alcune cose definite / installate in una shell, basta scrivere uno script per farlo e quindi eseguirlo con sourceo .quando si desidera che l'impostazione abbia effetto.

Se è qualcosa che vuoi sempre, puoi cercarlo in .profile (per le shell di login) o in .bashrc per tutte le shell (se usi bash).

Con un approccio come questo, è possibile disporre di più script per configurare diversi ambienti di lavoro in base alle esigenze, purché si assicuri che non si calpestino l'un l'altro se si invoca uno di essi dopo averne prima richiamato un altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.