いわゆる RHEL 系で httpd インストールした以下の状態で、 apache:apache
のまま github 運用するときどうするか、というやつ。
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
apache ユーザの設定
sudo -u apache
でユーザ指定して git
各種コマンドで github と通信できるようにする。 鍵ファイルは DeployKey に登録するものとする。
作業手順
- 鍵ファイル名は、仮に
key.pem
としています - 公開鍵 (
key.pem.pub
)も 600 にしてるけど、まあやらなくていいですね…… root
ユーザで作業しています、ゆるして
[root@localhost ~]$ mkdir -p /usr/share/httpd/.ssh;cd $_ [root@localhost .ssh]$ ssh-keygen -t ecdsa -f key.pem -N "" [root@localhost .ssh]$ vi config [root@localhost .ssh]$ touch known_hosts [root@localhost .ssh]$ chmod 600 key.pem;chmod 600 key.pem.pub [root@localhost .ssh]$ chmod 644 config;chmod 644 known_hosts [root@localhost .ssh]$ chown -R apache:apache /usr/share/httpd/.ssh/
config
Host github.com HostName github.com User git IdentityFile /usr/share/httpd/.ssh/key.pem
追記
運用環境のルールなどあると思いますが、鍵ファイルは生成時のタイムスタンプを入れておくと、Deploykey が失効するような環境ではある程度わかりやすい (要不要の判別) かもしれません。
そういう環境、結構あると思うんよ (引き継ぎなしの環境保守を引いたり)。
PREFIX
に、環境を表すキーワードなど適当に入れてもらうとよりよさそう。
`date "+%Y%m%d%H%M%S"`-PREFIX_deploykey.pem
接続テスト
以下 apache ユーザで接続をテストします。
[root@localhost .ssh]$ sudo -u apache ssh -T git@github.com Hi deploy-key! You've successfully authenticated, but GitHub does not provide shell access.
オッケーですね。