一、遠程登錄服務器
遠程登錄方式很多,常用 ssh 或者 putty,我最常使用的是 ssh
ssh遠程登錄用戶名和ip 按實際情況填寫
$ ssh [email protected]
使用win7 如果遇到如下問題
$ ssh [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:E13usrfN0xcsMQjXPRWhM/Odq/Z4Idd+vRiCuFuSen4.
Please contact your system administrator.
Add correct host key in /c/Users/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/user/.ssh/known_hosts:13
ECDSA host key for 192.168.102.207 has changed and you have requested strict checking.
Host key verification failed.
解決方法:
C:\Users\user\.ssh\known_hosts
進入上面路徑,將對應ip 的公鑰刪除即可,不可使用 windows 自帶的文本編輯器,可選用netepad++
二、同步時間
NTP(Network Time Protocol,網絡時間協議)是用來使網絡中的各個計算機時間同步的一種協議。NTP可以使計算機時鐘與 Internet 時間服務器同步。 這意味着可以更新計算機上的時鐘,以與時間服務器上的時鐘匹配,這有助於確保計算機上的時鐘是準確的。它的用途是把計算機的時鐘同步到世界協調時間UTC,其精度在局域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1-50ms。
運行以下命令,啓用NTP:
sudo timedatectl set-ntp true
更改時區
sudo dpkg-reconfigure tzdata
其後全選擇 None of the above 然後按回車,
再選擇 GMT -8
最後查看時間是否正確
pi@raspberrypi:~ $ date
三、安裝 vim 和 git
獲取最新的軟件包
pi@raspberrypi:~ $ sudo apt-get update
安裝 vim
pi@raspberrypi:~ $ sudo apt-get -y install vim
安裝git
pi@raspberrypi:~ $ sudo apt-get install git
四、創建gitadmin 用戶,並生成公鑰私鑰
創建 gitadmin 用戶
pi@raspberrypi:~ $ sudo adduser gitadmin
創建用戶會要求輸入密碼,輸入密碼後,其它直接回車,使用默認即可
切換至gitadmin 用戶
pi@raspberrypi:~ $ su gitadmin
gitadmin@raspberrypi:/home/pi $ cd ~
生成公鑰私鑰
gitadmin@raspberrypi:~ $ ssh-keygen
按三次回車,第一次是確認路徑,後面是密碼和確認密碼
將公鑰拷貝至 /tmp
gitadmin@raspberrypi:~/.ssh $ cp id_rsa.pub /tmp/gitadmin.pub
五、切換回pi 用戶,再創建git 用戶
pi@raspberrypi:~ $ sudo adduser git
創建用戶會要求輸入密碼,輸入密碼後,其它直接回車,使用默認即可
六、安裝 gitolite
切換爲 git 用戶
pi@raspberrypi:~ $ su git
git@raspberrypi:/home/pi $ cd ~
輸入剛纔創建用戶時的密碼
然後克隆 gitolite
git@raspberrypi:~ $ git clone git://github.com/sitaramc/gitolite
再在用戶目錄下新建bin目錄
git@raspberrypi:~ $ mkdir -p bin
執行
git@raspberrypi:~ $ gitolite/install -to bin
設置管理員的私鑰
git@raspberrypi:~/bin $ ./gitolite setup -pk /tmp/gitadmin.pub
執行結果如下
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
(this is normal on a brand new install)
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
(this is normal on a brand new install)
至此git 用戶目錄下已經有如下目錄
git@raspberrypi:~ $ ls
bin gitolite projects.list repositories
七、使用 gitolite 方法
切換至gitadmin 用戶
git@raspberrypi:~ $ su gitadmin
gitadmin@raspberrypi:/home/git $ cd ~
克隆倉庫 gitolite-admin
gitadmin@raspberrypi:~ $ git clone [email protected]:gitolite-admin
修改用戶權限
查看目錄 gitolite-admin
gitadmin@raspberrypi:~/gitolite-admin $ ls
conf keydir
這兩個目錄
conf 管理repo(增刪,權限)
keydir 管理SSH用戶公鑰
添加倉庫,或者修改用戶權限,都可通過修改 conf 目錄下的 gitolite 文件來實現
新增用戶,可以通過keydir實現
先看conf
gitadmin@raspberrypi:~/gitolite-admin/conf $ cat gitolite.conf
repo gitolite-admin
RW+ = gitadmin
repo testing
RW+ = @all
repo 爲 repository 縮寫
如果需要添加倉庫,按照上面方式書寫,再用git 提交即可,如
repo gitolite-admin
RW+ = gitadmin
repo testing
RW+ = @all
repo testing2
RW+ = @all
幾種權限組
權限組: Owner
倉庫的擁有者,可以對倉庫做任何想做的事情,比如push, 修改其它人訪問這個倉庫的權限,甚至刪除,至少需要有一個人
權限組: RW
可讀寫組, clone, push, pull
權限組: R
可讀組, clone, pull
其中 Owner包含 RW, RW權限 包含 R
增加用戶
在用戶電腦上使用scp 將公鑰拷貝至git管理員電腦上,如下
$ scp id_rsa_copy.pub [email protected]:~/gitolite-admin/keydir/user.pub
執行結果
[email protected]’s password:
id_rsa_copy.pub 100% 392 129.9KB/s 00:00
執行完成後,在git 管理員電腦上,使用 gitadmin 用戶執行
gitadmin@raspberrypi:~ $ cd gitolite-admin/
gitadmin@raspberrypi:~/gitolite-admin $ git status
執行結果
On branch master
Your branch is up-to-date with ‘origin/master’.
Untracked files:
(use “git add …” to include in what will be committed)
keydir/user.pub
nothing added to commit but untracked files present (use “git add” to track)
user.pub 就是剛纔拷貝的用戶公鑰
提交改動
gitadmin@raspberrypi:~/gitolite-admin $ git add -A
gitadmin@raspberrypi:~/gitolite-admin $ git commit -m "add user user"
如下情況是因爲沒有配置用戶名,或者用戶郵箱,因爲git 的每次改動,都需要記錄是誰做的修改
*** Please tell me who you are.
Run
git config --global user.email “[email protected]”
git config --global user.name “Your Name”
to set your account’s default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <(null)>) not allowed
下面添加用戶名及郵箱
gitadmin@raspberrypi:~/gitolite-admin $ git config --global user.name "gitadmin"
gitadmin@raspberrypi:~/gitolite-admin $ git config --global user.email "gitadmin@raspberrypi"
然後再提交
gitadmin@raspberrypi:~/gitolite-admin $ git commit -m "add user user"
[master d2f096e] add user user
1 file changed, 1 insertion(+)
create mode 100644 keydir/user.pub
最後在試一下使用新添加的用戶,去克隆git 上的 testing 倉庫,如果不需要輸入密碼,便是成功了
後期如果需要移除倉庫,只需將conf 文件中對應的倉庫給移除
gitadmin@raspberrypi:~/gitolite-admin/conf $ vim gitolite.conf
並進入git 用戶,移除repositories 目錄下對應的倉庫即可
如test 倉庫
git@raspberrypi:~ $ cd repositories/
git@raspberrypi:~/repositories $ ls
gitolite-admin.git test.git testing.git
git@raspberrypi:~/repositories $ rm -rf test.git/
這樣就移除了倉庫 test