(一)公钥私钥处理机制
(1)原理
1.非对称密钥就是一对密钥-公钥和私钥。
2.私钥由系统中每个人自己持有,一般保存在自己的电脑里或u盘里。3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。
4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。
ssh-keygen 创建公钥和密钥。
ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。
ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。
(2)创建具体步骤 :
(1) 在本地主机上创建公钥和密钥 ssh-key-gen(2)用ssh-copy-id 把本地公钥复制到远程主机上
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3
(3) 登录
(二) 使用SecureCRT设置linux系统登录的ssh公钥认证
1.修改ssh配置文件/etc/ssh/sshd_config
RSAAuthentication yes //使用RSA加密算法PubkeyAuthentication yes //使用公钥认证
AuthorizedKeysFile .ssh/authorized_keys //允许的公钥存放的文件,放在用户主目录下
PasswordAuthentication no //禁止密码验证登录,如果启用的话,RSA认证登录就没有意义
2 生成公钥/密钥对
使用SecureCRT的"工具->创建公钥" 即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法生成密钥文件Identity和公钥文件Identity.pub。其间会提示输入通行短语,用于保护密钥,需要记住,以后每次连接时使用。也可以为空。
3.上传公钥
将公钥Identity.pub上传到ssh服务器系统的/home/user/.ssh内,我是使用root账号的,所以路径为/root/.ssh,如果没有.ssh目录,自行创建.ssh文件夹
4.openssh不支持SecureCRT生成的密钥格式,需要进行类型转换:
ssh-keygen -i -f Identity.pub >>authorized_keyschmod 600 authorized_keys
5.重启sshd服务
service sshd restart(三) 搭建自己的git 服务器
(1)centos 上安装git
(2)配置git 用户并且设置密码
useradd -m gitpasswd git //
(3)git 仓库目录创建,并且添加权限控制
mkdir /home/git/repositories # 最好使用repositories作为文件夹名称,这样可以简化后面的操作chown git:git /home/git/repositories
chmod 755 /home/git/repositories
(4) 初始化仓库
su gitcd /home/git/repositories
mkdir test
cd code
git --bare init // 初始化仓库
(5) 客户端测试
git clone git@120.27.32.48:/home/git/repositories/test(6) 为了省去每次都要输入密码,采用公钥形式
(1) 在本地主机上创建公钥和密钥
使用git 客户端 ssh-keygen -t rsa
此时会在 C:\Users\PA\.ssh 生成 id_rsa(私钥) id_rsa.pub(公钥)
(2)服务器
把公钥上传到服务器中 /tmp/id_rsa.pub , cat id_rsa.pub > /home/git/repositories/test/.ssh/authorized_keys
(6)
打开文件/etc/ssh/sshd_config
RSAAuthentication yes #开启RSA认证功能
PubkeyAuthentication yes #开启公匙认证
StricModes no #据说不改会强制要求登录用户和文件拥有者用户相同
/data1/www/code/code/