Puttyで作成したppk形式の秘密鍵でLinuxのクライアントからSSH接続することはできません。
OpenSSHのpem形式に変換しましょう。
もくじ
SSHの秘密鍵には形式がある
SSHのクライアントに合わせて秘密鍵を変換する必要があります。
ppk形式
- PuTTY Key Generatorで作成した鍵
- Sourcetree, WinSCPからサーバにSSH接続する際に利用する
PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: rsa-key-20190407 Public-Lines: 6 AAAAB3NzaC1yc2EAAAABJQAAAQEAmdIb5eHsHaxCk7XUyCi0I26PFmOilaAurE/a NUxsDmSFo3SgjCbIma4ciS9Gi34kgjY51IljnijimRxrzNn/5Ptkxuj59C5/tn5g ・・・ DpEnV8YtlBd7hfE9uG9fSDIYuISvEqE0C8F03utOxLVGPOoXAw== Private-Lines: 14 AAABADYLjULug2RfHk+S6eV2FcdChU0OQAsOxEphPtR0zAUOj9GlhIRE+l+CXQ2a /RxBE78MIigUmJ9aeSEJ/Fy7TBIu0GGQIHhjXU31DSlQ5um74MOUaKklPpGkZl7F ・・・ h+uEG4Lgi5ziwpbyFtIUZFFerksGVw/q5L5VIQwzDy9qcTCQQtXupTo5c2FXSBt9 r6i9njpJkyYSh6TYzAdXHbiZyQV8evt1qTx2bs+b3BXk99o= Private-MAC: 242fad37030940f6d99a80fddaea392bb790f68a
pem形式
- TeratermやLinux上からSSH接続する時に利用する
-----BEGIN RSA PRIVATE KEY----- MIIEoAIBAAKCAQEA7yejVQyBvhioYuOrxiat8jljkUjBBcdJKfOx/kjQI5825EIO 9CBl7pXPIetGCkgajZ2bjs9sU0E36HLI9sCSiS9OeNbo3YECcS2eRRF2Pzf4YhOw ・・・ TQKBgHHAnbZoDk0qZNnTYid9KmrOQwvB97x2KM9aNuHSaLyUialazssGKXE4W7Vd 6kvH4Vhb5AThFtsI1BauF0hdieTb3XHfi65eaDlqD/s+nhhKRX9RnEZkQ9dOHens S6pUwuW8mACiDraXBJBZAAOl6IKeP0FfOPWarIG+hS7J6C/Z -----END RSA PRIVATE KEY-----
1. PuttyでSSH鍵を作成する
Sourcetreeを利用したいのでppk形式、GithubにLinux上から利用したいので【Conversions】→【Export OpenSSH key】でpem形式を作成する
2. GitHubに公開鍵を登録する
https://github.com/settings/ssh
3. GitHub上にリポジトリを作成する
ここでGitHubでの作業はおしまい。
4. GitHubに接続するSSHクライアント設定
pem形式の秘密鍵を登録する
$ vi ~/.ssh/id_rsa_GitHub -----BEGIN RSA PRIVATE KEY----- MIIEoAIBAAKCAQEA7yejVQyBvhioYuOrxiat8jljkUjBBcdJKfOx/kjQI5825EIO 9CBl7pXPIetGCkgajZ2bjs9sU0E36HLI9sCSiS9OeNbo3YECcS2eRRF2Pzf4YhOw ・・・ S6pUwuW8mACiDraXBJBZAAOl6IKeP0FfOPWarIG+hS7J6C/Z -----END RSA PRIVATE KEY-----
$ vi ~/.ssh/config Host bitbucket User git Port 22 Hostname bitbucket IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes Compression yes Ciphers arcfour256 Host github.com User git Port 22 HostName github.com IdentityFile ~/.ssh/id_rsa_GitHub IdentitiesOnly yes Compression yes Ciphers arcfour256
5. ローカルリポジトリを作成する
まずクローンする
$ cd /home/yuu/develop/ $ git clone https://github.com/<ユーザ名>/●●●.git
リポジトリに入る
$ cd /home/yuu/develop/●●●.git
リモートリポジトリを確認する
$ git remote -v origin https://github.com/<ユーザ名>/●●●.git (fetch) origin https://github.com/<ユーザ名>/●●●.git (push)
SSHに変更する
$ git remote set-url origin git@github.com:<ユーザ名>/●●●.git
テスト用のファイルを作成する
$ touch test.txt $ git add . $ git commit -m "test commit from local"
ユーザ登録
$ git config --global user.name "<ユーザ名>" $ git config --global user.email <メールアドレス>
確認
$ git config --list
GitHubのリモートリポジトリにPushする
$ git push origin master Counting objects: 4, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 285 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:<ユーザ名>/●●●.git fc93ca3..8726e30 master -> master
OK