0
SSH keys when using the Docker executorでgitlabのドキュメントに従って、リモートサーバへの接続を設定しました。これは期待どおり動作します。Gitlab CI - BashでSSHキーを設定する
before_script:
- which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
しかし、私はこのような別のスクリプトでこれらのコマンドを入れたいのですが:
before_script:
- bash ./scripts/ssh-config.sh
ssh-config.sh
#!/bin/bash
which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)
eval $(ssh-agent -s)
ssh-add <(echo $SSH_PRIVATE_KEY)
mkdir -p ~/.ssh
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
リモートに接続しようとしますサーバーでは、次のエラーが発生します。
$ bash scripts/ssh-config.sh
/usr/bin/ssh-agent
Agent pid 15
Identity added: /dev/fd/63 (/dev/fd/63)
$ ssh [email protected] "touch test"
Warning: Permanently added 'example.com' (ECDSA) to the list of known hosts.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
スクリプトが正しく実行されたように見え、以前の方法と同じログを出力しました。何か案は?
内
#!/bin/bash
を使用しているためbash
の必要はありません。スクリプトが終了した後、ssh-agentもおそらく実行します。 – IBam