GNU/Linux >> Linux Esercitazione >  >> Linux

SSH - imposta env vairables da ogni connessione - host condiviso godaddy

Soluzione 1:

Supponendo che tu abbia UsePAM yes in /etc/ssh/sshd_config , e supponendo che tu voglia che queste variabili d'ambiente siano impostate per ogni utente, puoi avere pam impostare le variabili d'ambiente per te. Se hai le variabili d'ambiente definite in /etc/gitenv potresti aggiungere questa riga a /etc/pam.d/sshd

auth required pam_env.so envfile=/etc/gitenv

Oppure, ispezionando questo file, potresti scoprire che esiste già un pam_env.so in uso e già un file a cui puoi aggiungere cose. Fai solo attenzione e assicurati di aver testato a fondo le tue modifiche prima di terminare la tua sessione ssh, poiché quando stai scherzando con pam, puoi interrompere completamente la tua capacità di accedere al tuo server, se non stai attento.

Soluzione 2:

Sto impostando una variabile d'ambiente per le mie connessioni SSH usando il ~/.ssh/environment . Il file può contenere variabili nella forma VAR=value , non è necessario esportarli esplicitamente.

Tuttavia, questo file di configurazione utente viene ignorato per impostazione predefinita dal processo del server SSH a meno che l'opzione PermitUserEnvironment non sia impostata su yes. Pertanto devi assicurarti di modificare /etc/sshd_config sul server SSH per aggiungere o aggiornare questo parametro:

PermitUserEnvironment yes

Devi ricaricare la configurazione del server SSH. Su RHEL o Suse Linux lo fai (come root)

/sbin/service sshd reload

(Eventualmente sostituire sshd con ssh se non funziona)

Su Ubuntu (usando upstart) lo fai

sudo reload ssh

Su qualsiasi altro Linux, puoi provare (come root)

/etc/init.d/sshd reload

(Sostituisci sshd con ssh o openssh o qualunque cosa corrisponda allo script di inizializzazione del server SSH)

Soluzione 3:

Non ho più un buon host condiviso, quindi non posso verificare se le soluzioni proposte sono valide. Questa rimarrà la risposta accettata, poiché ha funzionato da me quando ho posto la domanda. Anche le altre risposte potrebbero funzionare. Lascio che la community lo decida con voti positivi.

Ok. La soluzione è che non esiste una soluzione su un host condiviso divino. Ho provato di tutto, ma non funziona niente, quindi ho deciso di rimanere con ~/.ssh/authorized_keys:

command="~/connect.sh" ssh-rsa AAAAB3NzaC...

In ~/connect.sh:

#!/bin/bash
if [ -f "${HOME}/.env_profile" ]; then
        source ~/.env_profile
fi;

if [ "x${SSH_ORIGINAL_COMMAND}x" == "xx" ]; then
        $SHELL --login
else
        eval "${SSH_ORIGINAL_COMMAND}"
fi;

E in ~/.env_profile:

export PATH=$PATH:$HOME/bin:$HOME/git/libexec/git-core
export LD_LIBRARY_PATH=$HOME/git/lib
export GIT_EXEC_PATH=~/git/libexec/git-core
export GIT_TEMPLATE_DIR=~/git/share/git-core/templates

Quindi devo copiare il command="..." in ogni chiave rsa nel file authorized_keys. Questa è la duplicazione del codice, ma non credo che ci sia un'altra soluzione su un buon host condiviso.


Linux
  1. Come configurare il tunneling SSH

  2. Ssh-agent non viene configurato (ssh_auth_sock, Ssh_agent_pid Env Vars non impostato)?

  3. Come configurare le chiavi SSH su Debian

  4. Come si esce da una connessione SSH?

  5. scp ssh:connessione all'host 10.0.0.109 porta 22:nessun percorso verso l'host ha perso la connessione

Configura una connessione di rete statica in Linux

Come configurare l'accesso SSH senza password

Come configurare SSH su CentOS e RHEL

^M alla fine di ogni riga in vim

connettersi all'host localhost porta 22:connessione rifiutata

SSH:connessione all'host localhost porta 22:connessione rifiutata