使用sshkey,禁用密码登陆,以及git仓库的搭建


使用sshkey,可以实现免密码登陆服务器,同时关闭ssh service的使用账号密码登陆功能即可

1、首先在客户机添加sshkey(如果是window系统的话需要安装shell终端工具,例如xshell,gitbash等)

ssh-keygen -t rsa -C 'email@sample.com'

#之后会在用户目录下生成一个.ssh目录,里面有“id_rsa”私钥(之前的命令生成的rsa算法加密的key)、“id_rsa.pub”公钥,私钥保存在客户端,公钥保存到服务端即可

2、在服务端的对应用户目录下的.ssh/authorized_keys文件下添加客户端的公钥,每行一个即可。如果authorized_keys原来不存在,新建该文件将拷贝内容放入即可(或者在其他用户的.ssh目录下看看有没有)

3、修改服务端对应用户的相应文件的权限:(改成一致即可,尽量不要多也不要少)

$ls -la /home/username
drwx--x--x  9 username username 4096 May 11 10:09 username
$ls -la /home/username/.ssh
-rw-r--r-- 1 username username  797 May 11 10:09 authorized_keys
$ls -la /home/username
drwx------ 2 username username 4096 May 11 10:09 .ssh

4、关闭ssh server的使用账号密码登陆功能

修改/etc/ssh/sshd_conf文件,将PasswordAuthentication修改为no

5、重启ssh service

sudo service ssh restart

git库的搭建,以上所做的一切都是为了服务于下面的操作

1、首先,生成一个git仓库

$ sudo git init --bare test.git
Initialized empty Git repository in /home/username/test.git/        #提示初始化了一个空的git仓库 
$ ls test.git
branches  config  description  HEAD  hooks  info  objects  refs        #该目录下的内容
$ sudo chown -R username:username test.git        #修改该目录的owner和group为username

2、禁用该用户的shell登陆(前提是这个用户创建就是为了git,不对系统进行登陆)

修改/etc/passwd

username:x:1001:1001:,,,:/home/username:/bin/bash
改为:
username:x:1001:1001:,,,:/home/username:/usr/bin/git-shell

3、正常使用git

$ git clone username@server:/home/username/sample.git
原文地址:https://www.cnblogs.com/wangjikun/p/6839564.html