Linux環境でのGitHubの構成と簡単な使用チュートリアル


一.環境
1.1オペレーティングシステム(その他のリリースでも可):
[root@gysl ~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

1.2 Gitバージョン:
[root@gysl ~]# git --version
git version 1.8.3.1

二.ステップ
2.1 Gitソフトウェアをダウンロードしてインストールします.
[root@gysl ~]# yum -y install git

2.2 SSHキーを作成します.
[root@gysl ~]# ssh-keygen -t rsa -b 2048 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:QYCyVkZQyuMZFG4vH8ulyo7L4x5Jz1ewWhhD69mVhI8 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|  +*o.oo.        |
| +o.=....        |
|  BO .oo.        |
| o+=*E+. .       |
| o++o+..S        |
|. ++o=.          |
| o +=.           |
|.+...            |
|=*=              |
+----[SHA256]-----+

ここではssh-keygenのいくつかのオプションを簡単に説明します.-tは暗号化アルゴリズムを指定し、-bはビット数を指定し、-Cは注釈(comment)と理解し、勝手に記入し、管理者メールボックスとして記入することができます.Enterキーを何回か連続して押すだけで、残りは気にする必要はありません.
2.3作成したSSHキーの公開鍵をGitHubのsettingsに追加します.
[root@gysl /]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjI58Vk8kCQqu6PPng8/bjkZY2JrsH/kExR9JpZ9I+i71H744Mpi7VnaBnbgye15ri4jG7DKFVMUKU7dflplL4+th90B2QIAEBKrXbIUV9LJH5InL/uJQ9+Gu7NK/vIboFhFLKgSzE3EU3p5SQcCNkGFL9ygQ18FPE2d2mwm+fOhNC73OrlADqZwLJ99wXKoH+3wX/b0l+NBsCE7usPE4bxQK6ZDWtjjvsQ2QWtlGO4ia7m3VdDmumV2byFEyeEpAN2dbMmlkVeix8+VmVNkPbJKkeSyjIXaJcjDJdyeqCcV0Kwx9jY+yU13LVZIBJ4wUBvtjO/u/RKDDsz1Ie+QrJ [email protected]

前のステップで何度もリターンキーを押すが、実はデフォルト設定を採用し、デフォルトで新しく生成されたkeyは~/.ssh/ディレクトリの下.id_をrsa.pubの内容はGitHubに追加されます.具体的には、settings(右上のユーザーの顔をクリック)->SSH and GPG keys->New SSH key->ADD SSH key.Titleは勝手に記入し、Key部分はコピーされた内容です.ログイン後、以下のアドレスを直接入力することもできます.https://github.com/settings/ssh/new
2.4追加に成功したかどうかをテストします.
[root@gysl /]# ssh -T [email protected]
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi mrivandu! You've successfully authenticated, but GitHub does not provide shell access.

ここにyesを入力する必要があります.以上の内容が表示され、keyが追加に成功したことを示します.
2.5 Clone自分の倉庫で試してみてください.
[root@gysl /]# git clone [email protected]:mrivandu/MyImageHostingService
     'MyImageHostingService'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 31 (delta 8), reused 15 (delta 2), pack-reused 0
     : 100% (31/31), 2.42 MiB | 563.00 KiB/s, done.
   delta  : 100% (8/8), done.

クローンは成功しました.
2.6ファイルを更新し、pushします.
[root@gysl MyImageHostingService]# git config --global user.email "[email protected]"
[root@gysl MyImageHostingService]# git mv 20181107200317.png Linux GitHub       .png
[root@gysl MyImageHostingService]# git commit
[master 4d7f9a1] Rename  20181107200317.png -> "Linux\344\270\213GitHub\345\277\253\351\200\237\351\205\215\347\275\256\345\271\266\344\275\277\347\224\250.png"
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename 20181107200317.png => "Linux\344\270\213GitHub\345\277\253\351\200\237\351\205\215\347\275\256\345\271\266\344\275\277\347\224\250.png" (100%)
[root@gysl MyImageHostingService]# git push
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 344 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To [email protected]:mrivandu/MyImageHostingService
   8bf8dfe..4d7f9a1  master -> master

これで、すべての操作が完了します.
2.7広げてみます.私たちはすでに公開鍵をGitHubだけ追加しました.私たちの秘密鍵はUディスクに保存して携帯することができますか?答えはいいです.どうやって操作しますか?下を見てください.
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA4yOfFZPJAkKrujz54PP245GWNia7B/5BMUfSaWfSPou9R++O
DKYu1Z2gZ24Mntea4uIxuwyhVTFClO3X5aZS+PrYfdAdkCABASq12yFFfSyR+SJy
/7iUPfhruzSv7yG6BYRSyoEsxNxFN6eUkHAjZBhS/coENfBTxNndpsJvnzoTQu9z
q5QA6mcCyffcFyqB/t8F/29JfjQbAhO7rDxOG8UCumQ1rY477ENkFrZRjuImu5t1
XQ5rpldm8hRMnhKQDdnWzJpZFXosfPlZlTZD2ySpHksoyF2iXIwyXcnqgnFdCsMf
Y2PslNdy1WSASeMFAb7Yzv7v0Sgw7M9SHvkKyQIDAQABAoIBADfbycKvrm484SiS
2EzHEn9SjWNR0QsdLwEkjY1Yd+7jxK/NLNzVfY0RD6KAAOCLW07Sm7JJX9+olpwz
hbW3Wo5aeiUuqiaIiFa2HzT9kK5A6MEhBLD4vpQi5LOMOHwRikLTEN02OUFMfkU6
lCGVQk7aYIaDSNfO+3rcrVLWXEcGtW7w7M116eWcZhYNjStO6yqv6vNpGQfAQVeD
bKrd5pWwWXw9GEiIx98pbFWuZYl6zFyPzMOHu3bvBhEnV83FTUthmuG/bvmlINie
OvRFFhllbeDUIkmWPlH7r/3pSUq+TCp205/mGJPJlH/upzUuazjqkgcd4Lcpb3sx
5XwI7qUCgYEA/tQyiZ5w1+bUQc4198T5ULLs3shi8AAvNrJBtmAF8YshkiuZ0dWH
G2IwIWVU0fczXl/mV8fUcspwnB7c0Gxsj4qkcYYcvMp3eOumO+EptONWIn7C4tTj
enaPnjJHshKwSSuhJYc2bJl+dvK5E5JiujlOXNilS06Iyq0kK8Zdpf8CgYEA5C7Y
7/xaRYBSAA0Ph1LHSZLNa2pByq7XbkhXwoRysnirtl+znsNQdNX6vm0p+xt3OTUP
PD/XxzouKI2HHI4zs2bHMHS5Oh0axgdbOTzrZyvZh23dAwFNtt2FOlpoxXPwLLe9
qwhrL2u5LAVv26b41AetITDqWN7nyavtR4M/nzcCgYEA6Cj0vfIuRlSTDjzLaCb5
KO9J5BHWKWdRnFg8i+XhpFSoSh4U7lnF1EnZJaPG6d932kQue8yfndEXVPS9IdmV
8hRSiuavKcSfofe2pBkXwSfYomawMK3ZbQm1AGA4d2CVYKQyFRmhmMEiuUWbHdyg
u55X6TirJveuok+pg4Qeb4sCgYEAySWy/vsJ6LKRlpHs2nHSU70hcEse7Djsl78V
/dcb9NADLqV2hcHPLu9iNnOsyjsQAlIPuCDfajSTdBQuwrFoSgGUHdcHYX8+lsrt
U6usKCqze3sRlRCVHVpxk1sXeNgXJJRkkly9f/QKLBAu5wZt2xtZNyUTsHvvAAyb
AqtkbkkCgYADUHQadxHZxNhwHNW/yhfGxSU/lOm2CMM5AbMrmemPNxAafw5QYNUq
iNA1pfQ0KJvciM0078lUEIrt4L3ehR85opLNIjeZ728V/r/OzZVS6TsxNy5ZXK2B
9fLSNix4p8BUMHxQ7ArQrOEWZMsrSqyZwjPLebhI87AaheIZzUvYMA==
-----END RSA PRIVATE KEY-----

GitHubに追加したばかりの秘密鍵ですが、私は今~/.sshディレクトリ下および/tmpディレクトリ下の内容はすべて空になります.
[root@gysl ~]# ll .ssh/ /tmp/
.ssh/:
    0
/tmp/:
    0

もう一度テストします.
[root@gysl ~]# ssh -T [email protected]
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
Permission denied (publickey).

GitHubアカウントへの接続が失敗したことを確認できます.
[root@gysl ~]# echo '-----BEGIN RSA PRIVATE KEY-----
> MIIEpAIBAAKCAQEA4yOfFZPJAkKrujz54PP245GWNia7B/5BMUfSaWfSPou9R++O
> DKYu1Z2gZ24Mntea4uIxuwyhVTFClO3X5aZS+PrYfdAdkCABASq12yFFfSyR+SJy
> /7iUPfhruzSv7yG6BYRSyoEsxNxFN6eUkHAjZBhS/coENfBTxNndpsJvnzoTQu9z
> q5QA6mcCyffcFyqB/t8F/29JfjQbAhO7rDxOG8UCumQ1rY477ENkFrZRjuImu5t1
> XQ5rpldm8hRMnhKQDdnWzJpZFXosfPlZlTZD2ySpHksoyF2iXIwyXcnqgnFdCsMf
> Y2PslNdy1WSASeMFAb7Yzv7v0Sgw7M9SHvkKyQIDAQABAoIBADfbycKvrm484SiS
> 2EzHEn9SjWNR0QsdLwEkjY1Yd+7jxK/NLNzVfY0RD6KAAOCLW07Sm7JJX9+olpwz
> hbW3Wo5aeiUuqiaIiFa2HzT9kK5A6MEhBLD4vpQi5LOMOHwRikLTEN02OUFMfkU6
> lCGVQk7aYIaDSNfO+3rcrVLWXEcGtW7w7M116eWcZhYNjStO6yqv6vNpGQfAQVeD
> bKrd5pWwWXw9GEiIx98pbFWuZYl6zFyPzMOHu3bvBhEnV83FTUthmuG/bvmlINie
> OvRFFhllbeDUIkmWPlH7r/3pSUq+TCp205/mGJPJlH/upzUuazjqkgcd4Lcpb3sx
> 5XwI7qUCgYEA/tQyiZ5w1+bUQc4198T5ULLs3shi8AAvNrJBtmAF8YshkiuZ0dWH
> G2IwIWVU0fczXl/mV8fUcspwnB7c0Gxsj4qkcYYcvMp3eOumO+EptONWIn7C4tTj
> enaPnjJHshKwSSuhJYc2bJl+dvK5E5JiujlOXNilS06Iyq0kK8Zdpf8CgYEA5C7Y
> 7/xaRYBSAA0Ph1LHSZLNa2pByq7XbkhXwoRysnirtl+znsNQdNX6vm0p+xt3OTUP
> PD/XxzouKI2HHI4zs2bHMHS5Oh0axgdbOTzrZyvZh23dAwFNtt2FOlpoxXPwLLe9
> qwhrL2u5LAVv26b41AetITDqWN7nyavtR4M/nzcCgYEA6Cj0vfIuRlSTDjzLaCb5
> KO9J5BHWKWdRnFg8i+XhpFSoSh4U7lnF1EnZJaPG6d932kQue8yfndEXVPS9IdmV
> 8hRSiuavKcSfofe2pBkXwSfYomawMK3ZbQm1AGA4d2CVYKQyFRmhmMEiuUWbHdyg
> u55X6TirJveuok+pg4Qeb4sCgYEAySWy/vsJ6LKRlpHs2nHSU70hcEse7Djsl78V
> /dcb9NADLqV2hcHPLu9iNnOsyjsQAlIPuCDfajSTdBQuwrFoSgGUHdcHYX8+lsrt
> U6usKCqze3sRlRCVHVpxk1sXeNgXJJRkkly9f/QKLBAu5wZt2xtZNyUTsHvvAAyb
> AqtkbkkCgYADUHQadxHZxNhwHNW/yhfGxSU/lOm2CMM5AbMrmemPNxAafw5QYNUq
> iNA1pfQ0KJvciM0078lUEIrt4L3ehR85opLNIjeZ728V/r/OzZVS6TsxNy5ZXK2B
> 9fLSNix4p8BUMHxQ7ArQrOEWZMsrSqyZwjPLebhI87AaheIZzUvYMA==
> -----END RSA PRIVATE KEY-----'>~/.ssh/id_rsa
[root@gysl ~]# chmod 600 .ssh/id_rsa
[root@gysl ~]# eval `ssh-agent`
Agent pid 4278
[root@gysl ~]# ssh-add .ssh/id_rsa
Identity added: .ssh/id_rsa (.ssh/id_rsa)

このステップで注意しなければならないのは、echoの後ろの引用符は二重引用符ではなく、秘密鍵の権限要求は600で、後ろの2つのコマンドは少なくなく、説明しないことです.もう一度テストします.
[root@gysl ~]# ssh -T [email protected]
Hi mrivandu! You've successfully authenticated, but GitHub does not provide shell access.

成功の喜びを改めて実感する.以上の内容は本人のGitHubアカウントを使って自ら実戦したもので、秘密鍵は削除されています.この秘密鍵を使って本人のGitHub倉庫に接続してはいけません.
三.まとめ
3.1ずっと前からGithubを使用していましたが、GitHubの使用チュートリアルを書くことができませんでした.GitHubは私たちのcodingの仕事に大きな便利さをもたらし、このツールを使うことを学ぶことが特に重要です.
3.2 Linux環境におけるGitの主な構成方法を紹介しただけで,他の環境も大きく異なる.
3.3文書に記載されているgitコマンドの使用は極めて簡単であり、さらに使用する必要がある場合は、本明細書の関連資料セクションを参照して、システム言語の学習も必要である.
3.4私のGitHubはコード管理のほかに、ブログのバックアップの場所やベッドとして扱われています.普通の人は彼に言いません.ここで邪悪に笑う~
四.関連資料
4.1 Github公式文書
4.2 Git公式中国語ドキュメント