2019年最後の更新、2020年最初の更新がともにInstall SSH Key actionの内容です。
だから何だ。
アクションの複数回呼び出しに正式対応しました。
いや、今までも一応できていたんですけど、想定はしていませんでした。
複数回呼ばれた場合、
config
とknown_hosts
は前回の値に今回の値を追加するようになりました。今までは上書きしていました。
秘密鍵と公開鍵は前回と同じ名前を指定できません。必ず
name
で別名を指定する必要があります。こちらは今までと変わりません。何がうれしい?
CI環境に鍵を複数登録したい場合に役立ちます。
具体的には複数のサーバーに別々の鍵を使って接続したい場合や、ポートフォワードを使いたい場合です。
例えばポートフォワードを使う場合、最初の呼び出しでは踏み台用の接続鍵やサーバー公開鍵を、2回目の呼び出しでは対象サーバー向けのものを別々に登録できます。
config
やknown_hosts
は追加されるので、上書きの心配はありません。runs-on: ubuntu-latest steps: - name: 踏み台サーバーの接続設定 uses: shimataro/ssh-key-action@v1 with: private-key: ${{ secrets.SSH_KEY_OF_BASTION }} public-key: ${{ secrets.SSH_KEY_OF_BASTION_PUBLIC }} name: id_rsa-bastion known-hosts: ${{ secrets.KNOWN_HOSTS_OF_BASTION }} # ※1 config: | # ※2 Host bastion HostName xxx.xxx.xxx.xxx User user-of-bastion IdentityFile ~/.ssh/id_rsa-bastion - name: 対象サーバーの接続設定 uses: shimataro/ssh-key-action@v1 with: private-key: ${{ secrets.SSH_KEY_OF_TARGET }} public-key: ${{ secrets.SSH_KEY_OF_TARGET_PUBLIC }} name: id_rsa-target known-hosts: ${{ secrets.KNOWN_HOSTS_OF_TARGET }} # ※1に追加される config: | # ※2に追加される Host target HostName yyy.yyy.yyy.yyy User user-of-target IdentityFile ~/.ssh/id_rsa-target ProxyCommand ssh -W %h:%p bastion - name: ポートフォワードでSCP run: scp ./foo/ target:bar/
今までは
config
もknown_hosts
も上書きされていたので、最初の呼び出しでは何も指定せず、2回目の呼び出しで必要な設定を全て入れる必要がありました。runs-on: ubuntu-latest steps: - name: 踏み台サーバーの接続設定 uses: shimataro/ssh-key-action@v1 with: private-key: ${{ secrets.SSH_KEY_OF_BASTION }} public-key: ${{ secrets.SSH_KEY_OF_BASTION_PUBLIC }} name: id_rsa-bastion - name: 対象サーバーの接続設定 uses: shimataro/ssh-key-action@v1 with: private-key: ${{ secrets.SSH_KEY_OF_TARGET }} public-key: ${{ secrets.SSH_KEY_OF_TARGET_PUBLIC }} name: id_rsa-target known-hosts: ${{ secrets.KNOWN_HOSTS }} # 踏み台と対象サーバーの公開鍵を両方指定 config: | # 踏み台と対象サーバーのconfigを両方指定 Host bastion HostName xxx.xxx.xxx.xxx User user-of-bastion IdentityFile ~/.ssh/id_rsa-bastion Host target HostName yyy.yyy.yyy.yyy User user-of-target IdentityFile ~/.ssh/id_rsa-target ProxyCommand ssh -W %h:%p bastion - name: ポートフォワードでSCP run: scp ./foo/ target:bar/
これだと各々の設定の独立性が低く、あまり使い勝手もメンテナンス性もよくないので、独立して指定できるようにしたのが今回の変更です。
それではよいCIライフを。
0 件のコメント:
コメントを投稿