天天看點

伺服器 ssh key 與 git 配置

程式員經常會說一句話: 面向 github 程式設計,github 對程式員的重要性可見一斑

雖然

git

可以工作在

ssh

https

兩種協定上,但為了安全性,更多時候會選擇

ssh

如果采用 https,則每次 git push 都需要驗證身份

是以此篇文章的主要内容是:

  1. ssh keygen

    : 生成非對稱加密中的 public-key 與 private-key,并把 publik-key 扔到 github 上。與上篇文章 配置伺服器免登陸 一樣的步驟
你對流程熟悉後,隻需要一分鐘便可以操作完成

Permission denied (publickey).

如果沒有設定 public key 直接

git clone

的話,會有權限問題

可以使用

ssh -T

測試連通性

$ git clone [email protected]: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 [email protected]
Permission denied (publickey).           

生成一個新的 ssh key

使用

ssh-keygen

可以生成配對的

id_rsa

id_rsa.pub

檔案

# 生成一個 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 的配置

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

在 github 的 ssh keys 設定中:

https://github.com/settings/keys

點選

New SSH key

添加剛才的key。

更多圖文指引可以參照官方文檔:

https://help.github.com/cn/articles/adding-a-new-ssh-key-to-your-github-account

設定成功

ssh -T

測試成功, 此時可以成功的面向 github 程式設計了

$ ssh -T [email protected]
Hi shfshanyue! You've successfully authenticated, but GitHub does not provide shell access.

$ git clone [email protected]: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.           

繼續閱讀