GNU/Linux >> Tutoriales Linux >  >> Linux

SSH - establecer variables de entorno por cada conexión - anfitrión compartido de Godaddy

Solución 1:

Asumiendo que tienes UsePAM yes en /etc/ssh/sshd_config , y suponiendo que desee establecer estas variables de entorno para cada usuario, puede hacer que pam establezca las variables de entorno por usted. Si tiene las variables de entorno definidas en /etc/gitenv podría agregar esta línea a /etc/pam.d/sshd

auth required pam_env.so envfile=/etc/gitenv

O al inspeccionar este archivo, es posible que descubra que ya se está utilizando pam_env.so y que ya hay un archivo al que puede agregar cosas. Solo tenga cuidado y asegúrese de haber probado exhaustivamente sus cambios antes de finalizar su sesión ssh, ya que cuando está jugando con pam, puede romper por completo su capacidad para iniciar sesión en su servidor, si no tiene cuidado.

Solución 2:

Estoy configurando una variable de entorno para mis conexiones SSH usando ~/.ssh/environment . El archivo puede contener variables en la forma VAR=value , no es necesario exportarlos explícitamente.

Sin embargo, este archivo de configuración de usuario es ignorado de manera predeterminada por el proceso del servidor SSH a menos que la opción PermitUserEnvironment esté establecida en sí. Por lo tanto, debe asegurarse de editar /etc/sshd_config en el servidor SSH para agregar o actualizar este parámetro:

PermitUserEnvironment yes

Debe volver a cargar la configuración del servidor SSH. En RHEL o Suse Linux lo hace (como root)

/sbin/service sshd reload

(Posiblemente reemplace sshd por ssh si no funciona)

En Ubuntu (usando advenedizo) lo haces

sudo reload ssh

En cualquier otro Linux, puede probar (como root)

/etc/init.d/sshd reload

(Reemplace sshd por ssh o openssh o lo que corresponda al script de inicio del servidor SSH)

Solución 3:

Ya no tengo un host compartido de Godaddy, por lo que no puedo verificar si las soluciones propuestas son válidas. Esta seguirá siendo la respuesta aceptada, ya que funcionó cuando hice la pregunta. Las otras respuestas también podrían funcionar. Dejo que la comunidad decida eso con votos a favor.

Está bien. La solución es que no hay solución en un host compartido de Godaddy. Probé todo, pero nada funciona, así que decidí quedarme con ~/.ssh/authorized_keys:

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

En ~/conectar.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;

Y en el ~/.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

Así que tengo que copiar el comando ="..." a cada clave rsa en el archivo authorized_keys. Esto es duplicación de código, pero no creo que haya otra solución en los hosts compartidos de Godaddy.


Linux
  1. Cómo configurar claves SSH en Ubuntu 18.04

  2. Cómo configurar claves SSH en Debian

  3. ^M al final de cada línea en vim

  4. ¿Cómo salgo de una conexión SSH?

  5. SSH:conéctese al host localhost puerto 22:conexión rechazada

Configurar una conexión de red estática en Linux

Cómo configurar el inicio de sesión SSH sin contraseña

Cómo configurar SSH en CentOS y RHEL

Restrinja el inicio de sesión SSH a una IP o host específico

conectarse al host localhost puerto 22:conexión rechazada

scp ssh:conéctese al host 10.0.0.109 puerto 22:Sin ruta al host perdió la conexión