Skip to content

Instantly share code, notes, and snippets.

@slofp
Last active August 21, 2020 17:25
Show Gist options
  • Save slofp/ead2e189bc7aca829d06bdca12ece3bb to your computer and use it in GitHub Desktop.
Save slofp/ead2e189bc7aca829d06bdca12ece3bb to your computer and use it in GitHub Desktop.
SSHの作成と接続の方法(For Windows)

SSHの作成と接続の方法(For Windows)

githubやgitLabにSSHのKey作成と接続がよくわからなかったのでそれのまとめ。

前提としてGithubやGitLabのユーザー登録、Gitbash等が入っていることとして話を進めます。

1, キーの作成

ssh-keygenコマンドを使ってキーを生成します。

ssh-keygen -t rsa -b 4096 -C "メールアドレス"

-t は暗号方式です。 デフォルトでRSA、他にはDSA, ECDSA, ED25519を生成できます。 GitHubやGitLabではRSA(最大16384bit), ECDSA(256,384,521bitのいずれか), ED25519(固定256bit)が対応しています。

追記1

暗号キーの強度は、RSA < DSA < ECDSA < ED25519 だそうです


-b はbit数です、ED25519では256bit固定なので入力しても無視されます。

-C はコメントです、SSH keyのタイトルになります。

入力すると次の入力メッセージが出ます

Enter file in which to save the key (/c/Users/ユーザー名/.ssh/id_暗号方式):

これはKeyをどこに保存するか入力するところです。 デフォルトでは個人用ファイルの.sshディレクトリにid_<暗号方式名> で保存されます。 これはディレクトリルートを指定するのではなくファイル名まで指定されているので注意が必要です。(例: /c/ssh/id_rsaの場合C¥:sshにid_rsaというファイル名で保存する)

追記2

個人用ファイルの.sshディレクトリ内に保存しないと特定の環境内で使えないことが判明しました。保存するときは ~/.ssh/<ファイル名> に保存してください

あとはパスワードを入力して終了です。(ここで保存場所があっているのにfailed: No such file or directoryと言われた場合はもう一度試してみることをおすすめします)

保存が完了すると指定したところに拡張子のないファイル(秘密鍵)と.pubファイル(公開鍵)が生成されます。

2, Github/GitLabにSSH keyを追加する

公開鍵のファイル内容をコピーします

clip < 公開鍵のパス

※Linuxなどではclipではなくpbcopyです。

コピーしたらWebからSSH keyを追加します。

GithubではSettings > SSH and GPG keys > New SSH Key

GitLabではSettings > SSH keys に移動し、コピーした公開鍵をペーストし、追加します。

3, ~/.ssh/config を作成する

次にConfigファイルを作ります。Configファイルは個人用ファイルの.sshディレクトリに入れなければいけません。

これを作らなくても接続確認はできますがgitコマンドを使ってSSH接続する際に接続できないため必要です。

作る際は viコマンドを使うことをおすすめします。エクスプローラーからconfig(拡張子なし)を作ってメモ帳で~となるとめんどくさいので...

vi ~/.ssh/config

実行するとテキストエディターが開くと思います。使い方を知らない方のために説明するとaを押すと入力モードに入ります、終わる場合はESC、保存して終了する場合は:qw、保存せずに終了する場合は:q!です。

GitLabを例にconfigを書こうと思います。

Host gitlab.com
  HostName gitlab.com
  IdentityFile 秘密鍵のパス
  User git

Githubの場合はgitlab.comをgithub.comにすれば大丈夫です。

3, 接続テストをする

sshコマンドを使って接続テストをします

ssh -T gitlab.com(github.com)

これを実行して接続できれば完了です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment