Impostazione locale non rioutput: forzare determinate impostazioni locali quando si connette tramite ssh

Per anni ho avuto un problema con la "Impostazione di locali non rioutput". Ora ho capito il problema. Nella mia macchina locale, il mio LC_TIME è impostato su un file personalizzato ("custom.UTF-8"). Questo file personalizzato non esiste in nessuna macchina remota a cui si connette. Tuttavia, tramite SSH la mia impostazione locale viene esportta e ricercata presso la macchina remota. Quindi è per questo che continuo a get:

perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "custom.UTF-8", LANG = "en_US.UTF-8" 

Quello che voglio configurare è che il locale LC_TIME (o qualsiasi variabile locale) non sia mai esportto. Sto bene utilizzando il valore definito sulla macchina remota. Come devo definire questo?

  • Come posso scorrere le mie chiavi ssh sull'attività di gestione dell'alimentazione?
  • Perché la disconnessione da una session SSH si blocca quando si utilizza l'inoltro di port?
  • Restrizione SSHd per utente
  • Public-Key -or- Password & Google Authenticator per l'accesso SSH
  • ssh restituisce "proprietario difettoso o autorizzazioni su ~ / .ssh / config"
  • Accesso SSH a un'istanza EC2 che non è rioutput con i tasti di funzionamento precedenti
  • ssh chiede la password nonostante il ssh-copy-id
  • Come abilitare l'inoltro di SSH X11 tramite un server aggiuntivo?
  • One Solution collect form web for “Impostazione locale non rioutput: forzare determinate impostazioni locali quando si connette tramite ssh”

    Il modo più semplice per impedire l'esportzione dell'ambiente è quello di sovrascriverli sul lato server. Creare un file .bashrc (o il file di initialization appropriato per la shell) e sovrascrivere le variables.

    esempio: file minimo .bashrc

     unset LC_TIME 

    in alternativa, impostare la variabile ad un valore valido:

     export LC_TIME=en_US.UTF-8 

    Se si desidera veramente impedire l'invio di alcune variables di ambiente, è probabile che l'accesso principale sia necessario sul client e / o sulla macchina server.

    Sul lato client è ansible modificare /etc/ssh/ssh_config e rimuovere o modificare la linea SendEnv . Oggi la maggior parte delle distribuzioni hanno impostato per submit le variables di ambiente locale ( LC_* ). Come utente puoi solo appendere a questo elenco, non sovrascrivere. È per questo che puoi distriggersre questa opzione solo quando hai accesso alla macchina alla macchina.

    In alternativa, sul lato server è ansible modificare /etc/ssh/sshd_config e rimuovere o modificare la linea AcceptEnv . Oggi la maggior parte delle distribuzioni hanno impostato per accettare le variables di ambiente locale ( LC_* ).

    Cerca le spiegazioni di SendEnv nella pagina man per ssh_config e AcceptEnv nella pagina man per sshd_config .

    Per completezza: c'è anche PermitUserEnvironment in sshd_config . Come dice il nome, consente all'utente di impostare alcuni file che inizializzano alcune variables. Se PermitUserEnvironment è abilitato puoi prendersi cura del resto come utente, ma non ho mai incontrato un sistema con PermitUserEnvironment abilitato.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.