Comando remoto nel file di configurazione ssh


12

Vorrei impostare ssh_config, quindi dopo aver digitato ssh my_hostnamefinisco in una cartella specifica. Proprio come scriverei cd /folder/another_one/much_much_deeper/.

Come posso raggiungerlo?

MODIFICARE. È stato contrassegnato come duplicato di "How to ssh into dir ..." ma non è una mia domanda.

So di poter eseguire qualsiasi comando eseguendone la coda ssh. La mia domanda riguarda il /ssh_configfile non il comando.


Ho chiarito la mia domanda.
Kazz,

Non c'è niente al riguardo man ssh_config. Il più vicino è LocalCommand ma non può essere utilizzato per il comando interattivo.
Lgeorget,

1
Per favore, potresti spiegare (nella tua domanda) perché ritieni che il cambiamento debba essere apportato ssh_config? Probabilmente ci sono posti migliori per configurare la directory di partenza e sarebbe utile capire perché esiste questa particolare restrizione su una possibile soluzione.
roaima,

1
Il fatto che "non si possa fare ssh_config" non lo rende un duplicato di "fallo in Bash". "Non puoi farlo" è una risposta perfettamente valida.
Franklin Yu,

1
@terdon Tuttavia il fatto "non è possibile" può cambiare nel tempo. Sì, è possibile ora. Ora (così come chiunque in futuro verrà a vederlo) ho bisogno di una nuova risposta, e restiamo bloccati qui. Se questo non viene riaperto, immagino che il percorso desiderato sia quello di creare una nuova domanda (e rispondere)?
Franklin Yu,

Risposte:


19

Non c'era modo di farlo, fino a OpenSSH 7.6 . Dal manuale :

RemoteCommand

Specifica un comando da eseguire sul computer remoto dopo aver effettuato correttamente la connessione al server. La stringa di comando si estende fino alla fine della riga e viene eseguita con la shell dell'utente. Argomenti per RemoteCommandaccettare i token descritti nella sezione TOKENS .

Quindi ora puoi avere

RemoteCommand cd /tmp && bash

È stato introdotto in questo commit .


5
Aggiungi RequestTTY forcese il comando remoto richiede un TTY. Ad esempio:tmux new -As my-session
Aaron Blenkush,

Questa è l' sshopzione killer Grazie!
Il

Ciò rende impossibile eseguire altri comandi, ad esempio ssh my_hostname lsfallirà Cannot execute command-line and remote command.. Fa fallire anche altri strumenti che usano ssh come git e rsync.
remram,

2

Vorrei impostare ssh_config così dopo aver digitato ssh my_hostname

Non è possibile. Non esiste alcuna opzione per raggiungere questo obiettivo ssh_config. Il più vicino ad esso è impostare un alias bash o una funzione bash, come ad esempio

myssh() {
    ssh -t $1 "cd /dir/; bash"
}

1

Ho risposto con un biglietto diverso prima che il somoene avesse sottolineato che si trattava dell'originale.

Se usi un Mac, la mia raccomandazione è di usare iTerm2 e creare un profilo. Inserisci ssh my_hostnamenella riga di comando, quindi aggiungi il comando cd /folder/another_one/much_much_deeper/nel campo Invia testo all'inizio. Quando ti connetti alle sessioni, verrà inviato al tuo nome host e cd alla directory nel tuo caso, o eseguirà un comando.

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.