SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。簡單說,SSH是一種網絡協議,用於計算機之間的加密登錄。
最早的時候,互聯網通信都是明文通信,一旦被截獲,內容就暴露無疑。1995年,芬蘭學者Tatu Ylonen設計了SSH協議,將登錄信息全部加密,成為互聯網安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成為Linux系統的標准配置。如果要在Windows系統中使用SSH,會用到另一種軟件PuTTY。
SSH之所以能夠保證安全,原因在於它采用了公鑰加密。
過程:
(1)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。
(2)用戶使用這個公鑰,將登錄密碼加密后,發送回來。
(3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄
首先在本地創建 SSH Keys
$ ssh-keygen -t rsa -C "18817801185@163.com"
后面的郵箱即為 github 注冊郵箱,之后會要求確認路徑和輸入密碼,一路回車就行。
成功的話會在 ~/
下生成 .ssh
文件夾,進去,打開 id_rsa.pub
,復制里面的key
。
那么問題來了,如何進入到 ~/ 路徑下找到 .ssh 文件夾呢?
使用命令
cd ~/.ssh
出現提示 "No such file or directory",此時可以選擇手動創建一個 .ssh 文件夾,如下:
然后執行之前的命令生成 SSH Keys
此時 SSH Keys 已經生成,查看內容
復制全部內容,打開 GitHub 主頁,左側選擇 SSH and GPG Keys, 點擊 Add SSH Keys,然后輸入名稱,並將復制的內容粘貼過來,添加即可。
驗證 SSH Keys 是否添加成功
$ ssh -T git@github.com
如果是第一次的會提示是否continue,輸入yes就會看到:You've successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。
接下來我們要做的就是把本地倉庫傳到github上去,在此之前還需要設置username和email,因為github每次commit都會記錄他們。
1 $ git config --global user.name 'wangxi' 2 $ git config --global user.email 18817801185@163.com
進入要上傳的倉庫,右鍵 git bash,添加遠程地址
$ git remote add origin git@github.com:wangxi/Node-React-MongoDB-TodoList.git
加完之后進入 .git,打開 config,這里會多出一個remote "origin"內容,這就是剛才添加的遠程地址,也可以直接修改config來配置遠程地址。
創建新文件夾,打開,然后執行 git init
以創建新的 git 倉庫。
檢出倉庫
git clone /path/to/repository
檢出服務器上的倉庫
git clone username@host:/path/to/repository