本篇筆記中的云服務器是CentOS_7服務器淘衙,本地系統(tǒng)是Windows10传藏。筆記內容包含了Linux系統(tǒng)中的用戶創(chuàng)建、ssh登錄(多公鑰對配置)、創(chuàng)建遠程git根項目毯侦、push本地項目到云服務器中哭靖。
本文是一篇總結性文章,感謝諸多網友的無私奉獻侈离!由于是總結文章些許內容會直接引用參考文章试幽,在文中引用處會盡量注明。
創(chuàng)建用戶
在云服務器中管理git項目卦碾,直接用root用戶去管理是很危險的铺坞。本人創(chuàng)建一個名為git
的用戶,使用密鑰對通過ssh鑒權的方式來管理git項目洲胖。步驟如下:
- 創(chuàng)建用戶:
useradd git
济榨,使用root用戶登錄之后,創(chuàng)建一個用于管理git項目的賬號宾濒。該賬戶擁有/home/git
位置的文件讀寫權限腿短。 - 修改git用戶密碼:
passwd git
,密碼需要確認兩次绘梦。 - 切換用戶登錄:
su git
橘忱,這一步很重要,涉及到設置ssh密鑰配置的步驟卸奉。 - 創(chuàng)建
ssh
密鑰配置文件:
上面的步驟特別重要凝颇,如果在root用戶下創(chuàng)建、配置的# 進入/home/git目錄钝诚, cd /home/git # 創(chuàng)建git用戶的ssh密鑰配置位置,每個用戶都需要.ssh文件去管理其ssh安全配置 mkdir .ssh # 創(chuàng)建authorized_keys文件榄棵,用來存放客戶端的公鑰 touch .ssh/authorized_keys # 配置文件的讀寫權限 chmod 700 .ssh chmod 600 .ssh/authorized_keys
.ssh
和.ssh/authorized_keys
文件疹鳄,使用xshell登錄的時候就會提示用戶未注冊密鑰對拧略。
安裝ssh
正常來說云服務器都會提前安裝有ssh軟件的,但考慮特殊情況還是貼一篇參考文章:CentOS 7安裝和配置ssh瘪弓。
安裝成功之后垫蛆,就需要進一步配置git
用戶端的ssh登錄密鑰了。我生成的密鑰對是在Windows10使用Xshell生成的腺怯,當然也可以用Windows10上的Git直接生成袱饭。
這里記錄使用git生成密鑰對的命令:
# 生成密鑰對,windows會在當前用戶目錄的.ssh中生成一對密鑰對呛占。
ssh-keygen -t rsa -C "***@***"
這里可以設置密碼確認兩次虑乖,亦或是直接回車回車回車,就成生成了密鑰對了晾虑。名稱是
私鑰 id_rsa
和 公鑰id_rsa.pub
疹味。其中公鑰是要部署到我們云服務器的git用戶/home/git/.ssh/authorized_keys
文件中的仅叫。
我們可以安裝一個用于云服務器上傳下載的軟件,很方便的:yum install lrzsz
佛猛。
之后(這里使用git用戶):
# 進入git的.ssh目錄
cd /home/git/.ssh
# 選擇生成的id_rsa.pub文件
rz
# 查看并復制公鑰內容惑芭,之后粘貼到authorized_keys文件中
cat id_rsa.pub
# 也可使用命令追加到authorized_keys文件后面坠狡,多個公鑰記得換行
cat id_rsa.pub >> authorized_keys
設置完公鑰之后就要配置ssh了(這里使用root用戶)
# 如果怕把ssh_config文件改壞了继找,可以使用sz /etc/ssh/sshd_config文件備份到本地,改壞了再`cd /etc/ssh`逃沿,然后`rz`備份文件婴渡,覆蓋源文件即可。
vi /etc/ssh/sshd_config
在這里需要修改總共有4凯亮、5處地方边臼,有些朋友的sshd_config
可能有點區(qū)別,下文會仔細說明假消。
- 開啟端口:開啟22端口柠并,開啟該端口時記得配置云服務器的安全組和打開云服務器防火墻的22端口
Port 22 AddressFamily any ListenAddress 0.0.0.0 ListenAddress ::
- 配置允許使用ssh登錄的用戶:
# 如果你的sshd_config配置中沒有改選項,添加即可富拗,多個用戶用空格隔開 AllowUsers root git
- 是否允許root用戶通過ssh登錄:
# no就是不允許 PermitRootLogin yes
- 允許使用公鑰對登錄
# no就是不允許臼予,這里設置yes PubkeyAuthentication yes
- 公鑰配置文件
# 改配置指向每個用戶的/home/'userName'/.ssh/authorized_keys文件 AuthorizedKeysFile .ssh/authorized_keys
- 是否允許ssh密碼登錄
# 不建議使用密碼登錄,用密鑰對更安全啃沪。配置no就不能通過密碼登錄粘拾。但是配置no之前請保證密鑰對可以正常登錄 PasswordAuthentication yes
- 其他:
RSAAuthentication
,有些文章里面也許會配置改選項创千。這里不是必須的缰雇,這是舊版本的配置。如果你的sshd_config
文件中存在改選項追驴,那將其配置為RSAAuthentication yes
即可 - Protocol:加上
Protocol 2
械哟。
重啟sshd服務service sshd restart
,如果重啟報錯請檢查上述內容是否配置出錯殿雪。
驗證ssh登錄
使用Windows10中的XShell暇咆,新建一個連接,輸入云服務器地址冠摄、登錄用戶糯崎,驗證方式選擇云服務器中配置的公鑰對應的私鑰,看看是否能登錄河泳。
能登錄的話沃呢,到此為止云服務器的ssh配置就ok了。
多個密鑰對配置
windows系統(tǒng)
如果你的PC存在多個密鑰對拆挥,需要和GitHub薄霜、Coding某抓、私人git倉庫等配對的話,你就需要在個人文件夾的/.ssh
下配置一個config文件(文件名就是config
惰瓜,不需要后綴否副。直接放在.ssh
目錄下即可),內容如下
# 阿里云服務器
Host xxx.xxx.com(隨意名稱)
HostName xxx.xxx.xxx(ip地址或者域名)
PreferredAuthentications publickey(公鑰)
IdentityFile C:\Users\wangzh\.ssh\id_rsa_2048_root(云服務器的公鑰對應的私鑰)
User root(要登錄的用戶)
Port 22(端口崎坊,默認22的話可以不寫)
# 阿里云git服務器备禀,多個配置后面追加
Host xxx.xxx.com(隨意名稱)
HostName xxx.xxx.xxx(ip地址或者域名)
PreferredAuthentications publickey(公鑰)
IdentityFile C:\Users\wangzh\.ssh\id_rsa_2048_git(云服務器的公鑰對應的私鑰)
User git(要登錄的用戶)
Port 22(端口,默認22的話可以不寫)
如果你對私鑰加了密碼奈揍,在連接建立的時候就要求你輸入密碼就好了曲尸。
OS X或者Linux系列系統(tǒng)
如果密鑰對是從其他地方拷貝過來的話,連接的時候會提示Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
男翰。
解決辦法有3個步驟
- 設置私鑰權限為700另患,
chmod 700 ~/.ssh/id_rsa_git
(密鑰文件按照自命名的來)。 - 添加密鑰文件到
/etc/ssh/ssd_config
文件中蛾绎,使用命令ssh-add ~/.ssh/id_rsa_git
昆箕。當然也可以直接修改/etc/ssh/ssd_config
文件。 - 同樣的租冠,在當前用戶的
~/.ssh/config
文件中配置上述windows系統(tǒng)類似的配置鹏倘,只是密鑰路徑需要修改一下。
git創(chuàng)建倉庫
參考文章:Centos7搭建Git及安裝使用
使用ssh登錄git用戶肺稀,進入用戶home目錄第股。創(chuàng)建用于存放git項目的文件夾。我這里操作如下
cd ~
# 存放所有git項目倉庫的文件夾
mkdir git_rep
# 創(chuàng)建一個用于存放筆記的git倉庫
mkdir note
# 進入該倉庫话原,創(chuàng)建遠程git根項目
cd note
git init --bare note.git
至此夕吻,用于存放筆記的遠程git倉庫創(chuàng)建成功。
關聯(lián)遠程倉庫
創(chuàng)建一個本地git倉庫繁仁,隨便寫點啥涉馅。初始化并關聯(lián)遠程倉庫
# 初始化本地倉庫
git init
# 提交本地文件
git add -A
git commit -m "首次提交"
# 關鍵,關聯(lián)本地倉庫到遠程倉庫黄虱,serverAddress是你的云服務器地址
# git是你的用戶名稚矿,也可以是root,是cat是dog捻浦。
# 例如dog@xxxx:/home/dog/git_rep/note/note.git
git remote add origin git@serverAddress:/home/git/git_rep/note/note.git
# 首次push并關聯(lián)master分支
git push -u origin master
這個時候可能會提示該連接未知晤揣,相信yes即可。
如果有多個git倉庫朱灿,就按照上文描述創(chuàng)建多個git倉庫即可昧识。當然也可以安裝像GitLab之類的服務器,但是對于配置差的服務器或者出于學習目的盗扒,這樣子搞搞陣就很好玩了跪楞。
本文純屬學習性質缀去,如有錯誤,勞煩請指出甸祭,十分感謝缕碎。
至此角虫,使用云服務器來管理git項目的步驟描述完畢了_炒瘟。