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 件のコメント:
コメントを投稿