gitにpushしようとしたら、エラー↓がでて詰まったので備忘録ついでに、書き残します。。。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
まずsshとは
- SSH(Secure Shell、セキュアシェル)というのは、通信プロトコルです。暗号化 と 認証 の仕組みを持っているため、安全な通信が可能
- 使い道としてはターミナルを用いて、遠隔にあるサーバーにログインしコマンドを打ち込むことで、なんらかの作業ができる
- SSH でサーバーにログインするには、以下のようにログインユーザー名とログインするサーバーのホスト名を指定して、sshコマンドを実行。(ホスト名の部分は、代わりにIPアドレスを指定することもできます。)
ssh ログインユーザー名@ホスト名
ssh-agentとは
- sshで利用される認証方式
- 一般的な、ユーザーID・パスワードが漏れてしまった場合は、簡単になりすましができるが、それを避けるために、交換鍵認証方式を利用することが推奨されている。
- ssh-agent を起動して秘密鍵を登録しておけば、sshコマンドを実行した際に自動的に秘密鍵を適用して認証処理を行ってくれ、パスフレーズの入力は、秘密鍵の登録時に一度行うだけで済む
- 公開鍵認証には以下の特徴があるため、パスワードよりも漏れる心配がかなり低く安全なのです。
- 秘密鍵はランダムで大きめなサイズのデータになっており、予測はほぼ不可能である。
- 秘密鍵の配置場所や、パーミッション(アクセス権限)に厳しい制限がある。
- 認証時にはパスフレーズの入力が必要である。
shhコマンド
コマンド | |
---|---|
ssh-add | [秘密鍵へのパス] 秘密鍵を登録する ex) ssh-add id_rsa |
ssh-add -l | 登録されている鍵のFingerprints一覧を表示する |
ssh-add -L | 登録されている鍵の公開鍵一覧を表示する |
ssh-add -d | [秘密鍵へのパス] 登録されている鍵を削除する |
ssh-add -D | 登録されている全ての鍵を削除する |