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.