雲服務器 ssh key 管理以及 github 的配置

程序員常常掛在嘴邊的一句話是: 面向 github 編程。若是沒有 github 對程序員而言萬古如長夜,github 對程序員的重要性可見一斑。html

github 進行協同的工具是 git,在上一章 雲服務器上 git 安裝及基本配置 對它在服務器上按照也有了基本介紹。雖然 git 能夠工做在 sshhttps 兩種協議上,但爲了安全性及便利性,更多時候會選擇 sshgit

若是採用 https,則每次 git push 都須要驗證身份程序員

此篇文章的主要內容是:github

  1. ssh keygen 生成非對稱加密中的 public-key 與 private-key
  2. 把 publik-key 扔到 github 上,與上篇文章 服務器高效登陸配置 同樣的步驟,不過上文是如何把 key 扔到雲服務器,而此處是扔到 github。

你對流程熟悉後,只須要一分鐘即可以操做完成shell

Permission denied (publickey).

若是沒有在 github 設置 public key 而直接執行 git clone 命令的話,會有權限問題。編程

使用 ssh -T 測試連通性以下,會有一個 Permission denied 的異常。vim

$ git clone git@github.com:vim/vim.git
Cloning into 'vim'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

# 不過有一個更直接的命令去查看是否有權限
$ ssh -T git@github.com
Permission denied (publickey).
複製代碼

生成新的 ssh key

使用命令 ssh-keygen 能夠生成配對的 id_rsaid_rsa.pub 文件,生成以後只需把 id_rsa.pub 扔到 github 便可。安全

# 生成一個 ssh-key
# -t: 可選擇 dsa | ecdsa | ed25519 | rsa | rsa1,表明加密方式
# -C: 註釋,通常寫本身的郵箱
$ ssh-keygen -t rsa -C "shanyue"

# 生成 id_rsa/id_rsa.pub: 配對的私鑰與公鑰
$ ls ~/.ssh
authorized_keys  config  id_rsa  id_rsa.pub  known_hosts
複製代碼

在 github 設置裏新添一個 ssh key

在雲服務器中複製 ~/.ssh/id_rsa.pub 中文件內容,並粘貼到github 的配置中。bash

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3SSSSSSSSSSSSSSSSSSSSSBAQDcM4aOo9qlrHOnh0+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHuM9cYmdKq5ZMfO0dQ5PB53nqZQ1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc1w7bC0PD02M706ZdQm5M9Q9VFzLY0TK1nz19fsh2I2yuKwHJJeRxsFAUJKgrtNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN7nm6B/9erp5n4FDKJFxdnFWuhqqUwMzRa9rUfhOX1qJ1SYAWUryQ90rpxOwXt9Pfq0Y13VsWk3QQ8nyaEJzytEXG7OR9pf9zDQph4r4rpJbXCwNjXn/ThL shanyue
複製代碼

在 github 的 ssh keys 設置中:github.com/settings/ke… 點擊 New SSH key 添加剛纔生成的 public key。服務器

更多圖文指引能夠參照官方文檔:help.github.com/cn/articles…

設置成功

使用 ssh -T 測試成功, 此時能夠成功愉快地面向 github 編程了,不再愁沒地抄代碼了。

$ ssh -T git@github.com
Hi shfshanyue! You've successfully authenticated, but GitHub does not provide shell access.
 $ git clone git@github.com:shfshanyue/vim-config.git
Cloning into 'vim-config'...
remote: Enumerating objects: 183, done.
remote: Total 183 (delta 0), reused 0 (delta 0), pack-reused 183
Receiving objects: 100% (183/183), 411.13 KiB | 55.00 KiB/s, done.
Resolving deltas: 100% (100/100), done.
複製代碼

關注我

我是山月,我會按期分享全棧文章在我的公衆號中。若是你對我的服務器運維感興趣的話,能夠加我微信 shanyue94 與我交流,或者備註我的服務器,加入我的服務器運維討論羣

山月的全棧成長之路
相關文章
相關標籤/搜索