about 1 year ago

OS:ubuntu-16.04-server

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server
sudo service ssh restart
使用有sudo權限的帳號
# 安裝 git

sudo apt-get install git-core

# 新增專用群組 gitgroup

sudo groupadd gitgroup

# 新增 gituser 並指定成 gitgroup & 設定密碼

sudo useradd -s /bin/bash -g gitgroup -m -d /home/gituser gituser
sudo passwd gituser

# 建立 git repository資料位置

sudo mkdir -p /opt/gitRepository
# 變更擁有者,主要是為了指定群組

sudo chown gituser:gitgroup -R /opt/gitRepository
切換到 gituser 帳號
# 建立專案資料夾並初始化

cd /opt/gitRepository
mkdir project_name.git
cd project_name.git
git init --bare --shared
使用有sudo權限的帳號建立一般用戶
sudo useradd -s /bin/bash -g gitgroup -m -d /home/spike spike
sudo passwd spike

這樣spike就可以透過 spike@192.168.200.212:/opt/gitRepository/project_name.git 來存取git
只不過這樣是透過帳號密碼來存取,如果要更安全點可以透過ssh key

在Server上

# 產生 ssh key

ssh-keygen
# 將公鑰內容複製到 authorized_keys

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

# 私鑰自己存下來後可以刪除 server上的私鑰

mv ~/.ssh/id_rsa ~

id_rsa.pub:公開金鑰(public key),這是可以對外公開的金鑰,之後要將它放在遠端的 Linux 伺服器上作認證使用。
id_rsa:私密金鑰(private key),這是要保護好的金鑰,它等同於你的 Linux 密碼,放在自己的電腦中。

在windows上可以透過 puttygen 來產生

但是要注意給出去的公鑰是紅色框框內的,直接複製給對方,puttygen 存下來的公鑰檔是無法相容

然後你自己要留存的要匯出成 OPENSSH Key 的格式

Server 的人如果是接收別人做好的公鑰會更省事點,帳號也不用給密碼了

sudo useradd -s /bin/bash -g gitgroup -m -d /home/${user} ${user}
sudo mkdir -p /home/${user}/.ssh
sudo vi /home/${user}/.ssh/authorized_keys
sudo chown ${user}:gitgroup -R /home/${user}/.ssh

在 Linux 伺服器的部份,如果要提高安全性,可以在伺服器上的 /etc/ssh/sshd_config 中修改以下的設定,停用密碼認證的登入方式,只允許金鑰認證:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
這樣可以避免網路上一些亂猜密碼的攻擊。不過使用這樣的方式要先留意自己的金鑰是否設定正確,確認可以不需要密碼登入之後才進行這樣的設定,否則停用密碼登入之後,如果沒有金鑰或是沒有將公開金鑰放在伺服器上,就會完全無法登入該 Linux 伺服器。最後記得重新啟動 sshd:

/etc/init.d/sshd restart

sudo systemctl reload sshd

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04
http://ubuntuhandbook.org/index.php/2016/04/enable-ssh-ubuntu-16-04-lts
http://blog.alantsai.net/2015/09/use-ssh-in-windows-for-github.html

← Win10疑難雜症 CentOS架設GitServer →
 
comments powered by Disqus