LoginSignup
1
0

More than 1 year has passed since last update.

複数人で共有するPCでパスワードのかかったSSH鍵を使いたい

Last updated at Posted at 2021-11-03

ロボットの体内PCとかでよくある話なのですが

  • 複数人で同じPCの同じアカウントを使用する
  • gitのリモートレポジトリにアクセスする際に、だれか一人のSSH鍵で設定してしまうとセキュリティ的に問題がある(そのPCを使える人は全員、その人の全てのプライベートレポジトリを読み書きできてしまうので)

という場合があります。最近はGitHubが基本的にSSH認証だけしか対応しなくなってしまったので、HTTPS認証での「ユーザ名とパスワードを入力する」という方法も使えません。
そこで、それぞれ自分専用のSSH鍵を作成します。

ssh-keygen -C "[your email]" -f ~/.ssh/id_rsa_[your GitHub ID]

# 例えば
ssh-keygen -C "yasu313nori@gmail.com" -f ~/.ssh/id_rsa_yasu31

その際にEnter passphraseで秘密のパスワードを設定すれば、自分しか使えない鍵を~/.ssh/id_rsa_[your GitHub ID]に生成することができます。

あとはいつもと同じように、~/.ssh/id_rsa_[your GitHub ID].pubにある公開鍵をコピーして自分のGitHubのSSH public keyに加えれば、

cat ~/.ssh/id_rsa_[your GitHub ID].pub

git clonegit push系のリモートに接続するコマンドの前にSSH鍵を指定するようにすれば、自分の鍵でリモートにアクセスできます

GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_[your GitHub ID] -o IdentitiesOnly=yes' git clone [SSH URL of repository]

毎回このコマンドを打つのは長いので、~/.bashrcに以下のようなエイリアスを登録しておくと楽です。

alias git-[your GitHub ID]="GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_[your GitHub ID] -o IdentitiesOnly=yes' git"
# 例えば
alias git-yasu31="GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_yasu31 -o IdentitiesOnly=yes' git"

これで、リモートと通信するコマンドを打つ時はこのようにして自分の鍵を簡単に指定できます。

git-yasu31 pull origin master

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0