2014年2月6日 星期四

讓git使用ssh不須輸入密碼做Clone/Push/Pull Request (Ubuntu12.04)

沒有留言:

在Git Client產生要用來連線的 ssh key

在Ubuntu使用ssh-keygen -t rsa指令產生ssh key,Enter passphrase的時候不要輸入任何東西
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kejyun/.ssh/id_rsa): id_rsa_kejyun
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_kejyun.
Your public key has been saved in id_rsa_kejyun.pub.
The key fingerprint is:
49:6c:bf:01:a0:74:c7:e4:fd:14:85:75:f6:18:f1:63 kejyun@kejyun-VirtualBox

在Git Server加入允許連線的ssh key


Client產生的public key資訊(id_rsa_kejyun.pub)加入到Server~/.ssh/authorized_keys中,因為我在產生key時指定的檔名為id_rsa_kejyun,所以public key則為id_rsa_kejyun.pub

方法1:

將Client產生的id_rsa_kejyun.pub上傳到Server,再使用cat ~/id_rsa_kejyun.pub >> ~/.ssh/authorized_keys指令將public key存入

方法2:

在Server使用編輯器編輯~/.ssh/authorized_keys,直接將id_rsa_kejyun.pub的資料貼到檔案中

設定Client中使用ssh連線的方式

告訴Client的ssh,在連線到指定的主機時使用預設的key做連線

$vim ~/.ssh/config
Host 192.168.11.10
  HostName 192.168.11.10
  User kejyun
  IdentityFile /home/kejyun/.ssh/id_rsa_kejyun

開始使用免密碼做 Clone/Push/Pull Request

git clone ssh://kejyun@192.168.11.10/home/kejyun/test.git
git push origin master
git pull origin master

參考資料

ADS