ssh公钥链接linux服务器

1.  生成SSH密钥java

ssh-keygen -t rsa -C "10001@qq.com"

 会生成rsa和rsa.pub,默认保存在 ~/.ssh/ 目录 ,rsa是私钥,rsa.pub是公钥。git

 

2.  服务器端设置shell

编辑 etc/ssh/sshd_config bash

去掉如下几行的注释, 开启公钥认证登录 。服务器

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
AuthorizedKeysCommand none
AuthorizedKeysCommandRunAs nobody

若是须要禁止使用密码登陆,能够设置ssh

PasswordAuthentication no

 

重启sshide

service sshd restart

 

3.   在.ssh目录建立config文件(设置服务器端口,在连git服务器时)rest

host 192.168.1.101
user git

PreferredAuthentications publickey
identityfile  C:/Users/Administrator/.ssh/admin

hostname 192.168.1.101
port 22

指定链接192.168.1.101的服务器时使用admin私钥进行验证 。code

 

4.  上传公钥到服务器blog

在git  bash里面执行如下命令 :

scp ~/.ssh/admin.pub git@192.168.1.101: ~/ 

 

5.  将公钥写入服务器验证文件

以root登录服务器 ,再切换到git用户 。

在git用户目录创建 .ssh/authorized_keys 文件 。目录和文件都要新建 。

而后执行添加公钥命令

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

 

6.  设置文件和目录权限

SSH对公钥、私钥的权限和全部权的要求是很是严格的,总结以下:

一、设置.ssh目录权限

 

$ chmod 700 -R .ssh
 

二、设置authorized_keys权限

 

$ chmod 600 authorized_keys

 

要保证.ssh和authorized_keys都只有用户本身有写权限。不然验证无效。

 

7.  ssh公钥验证登录

输入ssh连服务器命令

ssh git@192.168.1.101

 

若是显示如下信息 ,代表密钥登录成功 。

$ ssh  git@192.168.1.101

Last login: Sun Jul  6 22:04:32 2014 from 192.168.1.100

[git@localhost ~]$