0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GithubにSSH接続する

Posted at

SSHキー発行からGithubSSHキーの設定まで(mac環境)

SSHについて

事前に公開鍵をサーバー側に配置しておき、ログイン時の認証処理において、ローカルに配置された秘密鍵と照合して本人確認する。
SSHを利用すれば、クラウドサーバー等にログインしてコマンドを実行して操作することが可能になる。
認証方式が甘いと簡単に不正アクセスされてしまう。

公開鍵認証のポイント

  • 認証に必要な秘密情報そのものはネットワーク上に送出されない
  • 認証に使われる署名は一時的なもので再利用はできない
  • 秘密鍵を推測して偽造することは非常に困難
  • パスフーレーズを設定して鍵そのものをロックすることができる

参考:SSH公開鍵認証とは

SSHキーの確認

ターミナルを開いてls -al ~/.sshを入力して、既存のSSHキーが存在するかどうか確認する。

ディレクトリの一覧から、公開SSHキーをすでに持っているか確認する。

GitHubでサポートされている公開キーのファイル名

  • id_rsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub

新しいSSHキーを生成するか、既存のキーをアップロードする

新しいSSHキーを生成する

ターミナルを開いて以下のコマンドを実行する

ssh-keygen -t ed25519 -C "your_email_address"

以下のプロンプトが表示されたらパスフレーズを入力する

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

SSHキーをssh-agentに追加して、パスフレーズをキーチェーンに保存する

何度も認証が必要になるような環境だと、パスフレーズの入力が大きなストレスになる。ssh-agentを起動して秘密鍵を登録しておけば、sshコマンドを実行した際に自動的に秘密鍵を適用して認証処理を行なってくれる。パスフレーズの入力は、秘密鍵の登録時に一度行うだけで済む。

バックグラウンドでssh-agentを開始する

eval "$(ssh-agent -s)"

~/.ssh/configファイルを編集する

# common
Host *
 AddKeysToAgent yes
 UseKeychain yes

# github
Host github
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_ed25519

SSH 秘密鍵を ssh-agent に追加して、パスフレーズをキーチェーンに保存

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

GitHub で自分のアカウントに SSH 公開キーを追加する

GitHubに登録してある公開鍵をauthorized_keysに追加する

curl https://github.com/${GITHUB_ACCOUNT_NAME}.keys >> ~/.ssh/authorized_keys

ssh配下のアクセス権限の設定

chmod 700 ~/.ssh	#ファイル又はディレクトリ所有者へすべてのアクセス権限を与える drwx------
chmod 600 ~/.ssh/id_ed25519	#ファイル又はディレクトリ所有者へ書き込み・読み込みのアクセス権限を与える -rw-------  
chmod 600 ~/.ssh/authorized_keys #-rw-------  

ls -la ~/.ssh #権限の確認

確認及び接続テスト

キーの確認

cat ~/.ssh/id_ed25519.pub

接続テスト

ssh -T git@github.com

以下のように選択してメッセージが表示されれば成功

Are you sure you want to continue connecting (yes/no)? → yes
Hi USERNAME! You've successfully authenticated, but GitHub does not
provide shell access. → OK

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?