GNU/Linux >> Linux の 問題 >  >> Linux

SSH - 接続ごとに環境変数を設定 - godaddy 共有ホスト

解決策 1:

UsePAM yes があるとします。 /etc/ssh/sshd_config で 、およびこれらの環境変数をすべてのユーザーに設定する必要があると仮定すると、pam に環境変数を設定させることができます。 /etc/gitenv で環境変数が定義されている場合 この行を /etc/pam.d/sshd に追加できます

auth required pam_env.so envfile=/etc/gitenv

または、このファイルを調べると、pam_env.so が既に使用されており、追加できるファイルが既に存在することがわかる場合があります。 ssh セッションを終了する前に、変更内容を十分にテストしてください。注意を怠ると、pam をいじっていると、サーバーにログインする能力が完全に失われる可能性があります。

解決策 2:

~/.ssh/environment を使用して SSH 接続用の環境変数を設定しています .ファイルには VAR=value の形式で変数を含めることができます 、明示的にエクスポートする必要はありません。

ただし、このユーザー構成ファイルは、オプション PermitUserEnvironment が yes に設定されていない限り、SSH サーバー プロセスによってデフォルトで無視されます。したがって、SSH サーバーの /etc/sshd_config を編集して、このパラメータを追加または更新する必要があります:

PermitUserEnvironment yes

SSH サーバー構成をリロードする必要があります。 RHEL または Suse Linux では (root として)

/sbin/service sshd reload

(うまくいかない場合は、sshd を ssh に置き換えてください)

Ubuntu では (upstart を使用して)

sudo reload ssh

他の Linux では、(root として) 試すことができます

/etc/init.d/sshd reload

(sshd を ssh または openssh など、SSH サーバーの初期化スクリプトに対応するものに置き換えます)

解決策 3:

godaddy 共有ホストがなくなったため、提案されたソリューションが有効かどうかを確認できません。私が質問したときにうまくいったので、これは受け入れられた答えのままです。他の答えも同様に機能する可能性があります。賛成票を投じてコミュニティに決定してもらいます。

Ok。解決策は、godaddy 共有ホストに解決策がないことです。私はすべてを試しましたが、何もうまくいかなかったので、~/.ssh/authorized_keys:

を使用することにしました。
command="~/connect.sh" ssh-rsa AAAAB3NzaC...

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

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

したがって、command="..." を、authorized_keys 内のすべての RSA キーにコピーする必要があります。これはコードの重複ですが、ひどい共有ホストには別の解決策があるとは思いません.


Linux
  1. SSHログインを特定のIPまたはホストに制限する

  2. Debian で SSH キーを設定する方法

  3. vim の各行末に ^M

  1. SSH:ホスト localhost ポート 22 に接続:接続が拒否されました

  2. Linux サーバーでは、単一の ssh 接続で複数の端末をどのように使用しますか?

  3. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

  1. SSHキーを設定する方法

  2. SSH トンネルを介して SSH を転送する

  3. .ssh/config へのパスワードの追加