GNU/Linux >> Tutoriels Linux >  >> Linux

SSH - définir les variables d'environnement par chaque connexion - hôte partagé godaddy

Solution 1 :

En supposant que vous avez UsePAM yes en /etc/ssh/sshd_config , et en supposant que vous souhaitiez que ces variables d'environnement soient définies pour chaque utilisateur, vous pouvez demander à pam de définir des variables d'environnement pour vous. Si vous avez les variables d'environnement définies dans /etc/gitenv vous pouvez ajouter cette ligne à /etc/pam.d/sshd

auth required pam_env.so envfile=/etc/gitenv

Ou en inspectant ce fichier, vous constaterez peut-être qu'il y a déjà un pam_env.so utilisé, et déjà un fichier auquel vous pouvez ajouter des éléments. Soyez juste prudent et assurez-vous d'avoir soigneusement testé vos modifications avant de mettre fin à votre session ssh, car lorsque vous jouez avec pam, vous pouvez complètement interrompre votre capacité à vous connecter à votre serveur, si vous ne faites pas attention.

Solution 2 :

Je définis une variable d'environnement pour mes connexions SSH en utilisant le ~/.ssh/environment . Le fichier peut contenir une variable sous la forme VAR=value , pas besoin de les exporter explicitement.

Cependant, ce fichier de configuration utilisateur est ignoré par défaut par le processus du serveur SSH, sauf si l'option PermitUserEnvironment est définie sur yes. Par conséquent, vous devez vous assurer de modifier /etc/sshd_config sur le serveur SSH pour ajouter ou mettre à jour ce paramètre :

PermitUserEnvironment yes

Vous devez recharger la configuration du serveur SSH. Sur RHEL ou Suse Linux, vous le faites (en tant que root)

/sbin/service sshd reload

(Remplacer éventuellement sshd par ssh si ça ne marche pas)

Sur Ubuntu (en utilisant upstart), vous le faites

sudo reload ssh

Sur n'importe quel autre Linux, vous pouvez essayer (en tant que root)

/etc/init.d/sshd reload

(Remplacez sshd par ssh ou openssh ou quoi que ce soit qui correspondrait au script d'initialisation du serveur SSH)

Solution 3 :

Je n'ai plus d'hébergeur mutualisé godaddy, je ne peux donc pas vérifier si les solutions proposées sont valides. Cela restera la réponse acceptée, car cela a fonctionné par moi quand j'ai posé la question. Les autres réponses pourraient également fonctionner. Je laisse la communauté en décider avec des votes positifs.

D'accord. La solution est qu'il n'y a pas de solution sur un hôte partagé godaddy. J'ai tout essayé, mais rien ne fonctionne, j'ai donc décidé de rester avec les ~/.ssh/authorized_keys :

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

Dans le ~/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;

Et dans le ~/.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

Je dois donc copier la commande ="..." sur chaque clé rsa dans les clés autorisées. Il s'agit d'une duplication de code, mais je ne pense pas qu'il existe une autre solution sur un hébergeur mutualisé godaddy.


Linux
  1. Comment configurer le tunnel SSH

  2. Ssh – Vous utilisez un canal Ssh déjà établi ?

  3. Comment configurer des clés SSH sur Debian

  4. scp ssh :connexion à l'hôte 10.0.0.109 port 22 :aucune route vers l'hôte n'a perdu la connexion

  5. Transférer SSH via un tunnel SSH

Configurer une connexion réseau statique sous Linux

Comment configurer une connexion SSH sans mot de passe

Comment configurer des clés SSH

Ssh-agent n'est pas configuré (ssh_auth_sock, Ssh_agent_pid Env Vars Not Set) ?

Comment configurer SSH sur CentOS et RHEL

se connecter à l'hôte localhost port 22 :Connexion refusée