どうも、nippa です。
リモートサーバに SSH 接続して、Github のソースコードを取得したいことがあると思います。
その際に、Github からのコード取得には ssh のみが許可されているの場合の対処法になります。
AWS や GCP でインスタンスを利用してサービスを提供する場合によくある状況だと思います。
Local の Github アクセス用の SSH 鍵を使って、インスタンス上にコードを clone する手順になります。
Github Docs にまとめられています。
Github Docs Using SSH agent forwarding
環境
- macOS 10.15
ssh config の設定(macOS)
${HOME}/.ssh/config
にアクセスするサーバ情報を記載します。
オプションにForwardAgent yes
を指定します。
Host test Hostname [IP or domain] User [username] IdentityFile [path of private key for server] ForwardAgent yes
ForwardAgent オプションを指定すると、指定した ssh key を ssh 接続先に引き継ぐことができます。
このとき、ssh 接続先には ssh key 自体は保存されません。
引き継ぐ秘密鍵の登録
ssh-add
コマンドで引き継ぎ秘密鍵を指定します。
ssh-add [path of private key for github]
登録した鍵は
ssh-add -L
で確認できます。
ssh 先で github にアクセス
リモートのサーバに ssh ログインしたあとに
ssh -T git@github.com # 表示 Hi [your account]! You've successfully authenticated, but GitHub does not provide shell access.
を行い、利用している github のアカウントが表示されることで確認できます。
登録した鍵の削除
以下のコマンドで登録した鍵をすべて削除できます。
ssh-add -D
感想
Github やクラウドサービスや VPS を利用することが多くなってきたこともあり、非常に便利になってきました。
ちょっとしたことを知っているだけで、作業が非常に効率に行えるようになりますが、その分、学習すべきことも増えています。
勉強すべきことはまだまだありますね。
ではでは、また次回。