GNU/Linux >> Belajar Linux >  >> Linux

SSH - atur env vairables oleh setiap koneksi - Host bersama godaddy

Solusi 1:

Dengan asumsi Anda memiliki UsePAM yes di /etc/ssh/sshd_config , dan dengan asumsi Anda ingin variabel lingkungan ini ditetapkan untuk setiap pengguna, Anda dapat mengatur variabel lingkungan pam untuk Anda. Jika Anda memiliki variabel lingkungan yang ditentukan dalam /etc/gitenv Anda dapat menambahkan baris ini ke /etc/pam.d/sshd

auth required pam_env.so envfile=/etc/gitenv

Atau dengan memeriksa file ini, Anda mungkin menemukan bahwa sudah ada pam_env.so yang digunakan, dan sudah ada file yang dapat Anda tambahkan sesuatu. Berhati-hatilah, dan pastikan Anda telah menguji perubahan Anda secara menyeluruh sebelum mengakhiri sesi ssh Anda, karena saat Anda mengotak-atik pam, Anda dapat sepenuhnya merusak kemampuan untuk masuk ke server Anda, jika Anda tidak berhati-hati.

Solusi 2:

Saya menyetel beberapa variabel lingkungan untuk koneksi SSH saya menggunakan ~/.ssh/environment . File dapat berisi variabel dalam bentuk VAR=value , tidak perlu mengekspornya secara eksplisit.

Namun, file konfigurasi pengguna ini diabaikan secara default oleh proses server SSH kecuali opsi PermitUserEnvironment diatur ke ya. Oleh karena itu Anda perlu memastikan untuk mengedit /etc/sshd_config di server SSH untuk menambah atau memperbarui parameter ini:

PermitUserEnvironment yes

Anda perlu memuat ulang konfigurasi server SSH. Di RHEL atau Suse Linux Anda melakukannya (sebagai root)

/sbin/service sshd reload

(Kemungkinan ganti sshd dengan ssh jika tidak berhasil)

Di Ubuntu (menggunakan pemula) Anda melakukannya

sudo reload ssh

Di Linux lain, Anda dapat mencoba (sebagai root)

/etc/init.d/sshd reload

(Ganti sshd dengan ssh atau openssh atau apa pun yang sesuai dengan skrip init server SSH)

Solusi 3:

Saya tidak lagi memiliki host bersama godaddy, jadi saya tidak dapat memeriksa apakah solusi yang diusulkan valid. Ini akan tetap menjadi jawaban yang diterima, karena saya berhasil ketika saya mengajukan pertanyaan. Jawaban lain mungkin berhasil juga. Saya membiarkan komunitas memutuskannya dengan suara positif.

Oke. Solusinya adalah tidak ada solusi pada host bersama godaddy. Saya mencoba segalanya, tetapi tidak ada yang berhasil, jadi saya memutuskan untuk tetap menggunakan ~/.ssh/authorized_keys:

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

Di ~/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;

Dan di ~/.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

Jadi saya harus menyalin perintah="..." ke setiap kunci rsa di authorized_keys. Ini adalah duplikasi kode, tapi menurut saya tidak ada solusi lain di host bersama godaddy.


Linux
  1. Cara Mengatur Kunci SSH di Ubuntu 18.04

  2. Cara Mengatur Kunci SSH di Debian

  3. ^M di akhir setiap baris di vim

  1. scp ssh:sambungkan ke host 10.0.0.109 port 22:Tidak ada rute ke host kehilangan koneksi

  2. Di server linux, bagaimana Anda menggunakan banyak terminal melalui satu koneksi ssh?

  3. Teruskan SSH melalui terowongan SSH

  1. Cara Mengatur Tunneling SSH

  2. Cara Mengatur Kunci SSH

  3. menambahkan kata sandi ke .ssh/config