SSH秘密鍵の内容を含むファイルを自動的に生成するには、umask値を変更してください。

SSH秘密鍵の内容を含むファイルを自動的に生成するには、umask値を変更してください。

この行を減らす方法を見つけようとしています(すでにCI_PRIVATE_SSH_KEY設定されています)。

mkdir -p "${HOME}/.ssh/"
chmod 700 "${HOME}/.ssh/"
echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa"
chmod 600 "${HOME}/.ssh/id_rsa"

これが私が今まで持っているものです:

(umask 077; mkdir -p "${HOME}/.ssh/"; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")

groupただし、+権限なしでディレクトリが作成されたため、これは正しく機能しませんother

だから私の質問は:ディレクトリとファイルをumask作成するための値があります(デフォルトはと仮定しています)?7006000022

私もそうしてみましたが、177それもできませんね。

ベストアンサー1

@Jeff Schallerに同意します。 chmodはumaskに比べて明確に表示されます。演算子でライナーを構築
し、ディレクトリのデフォルト権限を644に変更します。 bashは、演算子の左から右にコマンドを実行しようとし、すべての「左」コマンドがステータス0を返す場合にのみ続行します。&&
.ssh
&&

mkdir -p "${HOME}/.ssh/" && chmod 644 "${HOME}/.ssh/" && echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa" && chmod 600 "${HOME}/.ssh/id_rsa"

またはumask .ssh133、177キー、

(umask 133; mkdir -p "${HOME}/.ssh/";umask 177; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")

おすすめ記事