0

他の何人かの人が自分のアカウントで使用できるようにしたいさまざまなスクリプトがあります。これらのスクリプトはgithubリポジトリに保存しています。

次の方法でコンピューターにSSH接続するbashスクリプトがあるとします。

username=crzyuser123
ssh -XY $username@specialcomputer.com

今、私は頭がおかしいわけではなく、(rsa pub / privateキーを使用して)パスワードをスクリプトに保存していませんが、これは非常に便利なスクリプトであり、常に使用および更新しており、他の人もすべてを使用しているとしましょう。時間(ただし、明らかに異なるユーザー名を持っています)。

私ができるようにしたいのは、「git pull、ファイル内のこの1行を編集して、ユーザー名がそこにあるようにしてから、忘れてください」と言うことです。そして、リポジトリを更新するためにgit pullを実行するたびに、その行は変更されません。

もちろん、リポジトリを更新するたびにこの1行を更新することもできますが、それは大きな苦痛のようです。また、解決策をそれほど難しくない方法で伝える必要があります。

この状況を関係者全員にとって最も簡単にするためのベストプラクティスは何ですか?

4

3 に答える 3

0

ベストプラクティスは、ユーザー名/パスワードをファイルにまったく保存しないことです。これらの値をパラメーターとしてスクリプトに渡します。または、構成ファイルからそれらを読み取ります。しかし、そもそもそのようなものをハードコーディングすることは決してありません。「シェルスクリプトのみ」の場合でも。

それらをパラメーターとして渡す場合、スクリプトを使用したい人は、適切なパラメーターを使用してスクリプトを呼び出す独自のスクリプトをラップするか、パラメーターを手動で渡すことができます。

構成ファイルを使用すると、誰もがリポジトリにコミットしない適切な構成ファイルを持つことができます。

于 2012-08-24T08:44:39.890 に答える
0

1つの可能な解決策

マシンで「jdoe」と言う新しいアカウントを設定します。公開鍵をに入れ、/home/jdoe/.ssh/authorized_keys適切な場所にリポジトリ(またはクローン)を貼り付けます。スクリプトを使用する各ユーザーの公開鍵を同じauthorized_keysファイルに追加しjdoe、スクリプトにハードコードします。

よりクリーンな解決策がありますが、これはおそらくあなたが望むものを手に入れるための最も速い方法です。

編集:アクセスを許可する必要があるのがgithubの場合は、組織を設定するか、githubのキーペアを生成してもらうことをお勧めします。それでも、適切な場所にパブキーを追加する必要があります。

于 2012-08-24T03:13:23.283 に答える
0

ユーザー名をbashスクリプトに保存しない方法を見つけました。これが私が実装したbashソリューションです:

# If an argument is passed, set as supercomputer username
if [ $# -eq 1 ]
then
  username=$1
# Else, use the current username as the supercomputer username
else
  username=$LOGNAME
fi

これにより、スクリプトを自動的に実行できます(現在のユーザーがスーパーコンピューターのユーザー名と同じであると想定)。また、誰かが別のユーザー名を入力する必要がある場合、スクリプトはそのユーザー名を取得します。

于 2012-08-25T14:10:47.837 に答える