IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

Git リモート先にsshの秘密鍵を引き継ぐ

どうも、nippa です。

リモートサーバに SSH 接続して、Githubソースコードを取得したいことがあると思います。

その際に、Github からのコード取得には ssh のみが許可されているの場合の対処法になります。

AWSGCPインスタンスを利用してサービスを提供する場合によくある状況だと思います。

Local の Github アクセス用の SSH 鍵を使って、インスタンス上にコードを clone する手順になります。

Github Docs にまとめられています。

Github Docs Using SSH agent forwarding

環境

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コマンドで引き継ぎ秘密鍵を指定します。

今回は githubssh 秘密鍵を指定します。

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 を利用することが多くなってきたこともあり、非常に便利になってきました。

ちょっとしたことを知っているだけで、作業が非常に効率に行えるようになりますが、その分、学習すべきことも増えています。

勉強すべきことはまだまだありますね。

ではでは、また次回。