去掉以下几行的注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysCommand none
AuthorizedKeysCommandRunAs nobody
这个意思是开启公钥认证登陆 。
然后service sshd restart ,重启ssh 。
然后添加个用户git ,设置密码 ,我们用用户git测试共钥登陆 。不建议用root测试,以防万一 。
2.生成公钥和私钥
在git bash 里面运行以下命令
ssh-keygen -t rsa -f ~/.ssh/admin
win7会在C:\Users\Administrator\.ssh生成两个文件 admin.pub 和admin两个文件 。admin是私钥文件 ,admin.pub是公钥文件 。
然后建立一个config文件 ,指明登陆某台服务器用哪个私钥文件 。
比如我写入了以下内容:
host 192.168.1.101
user git
hostname 192.168.1.101
port 22
identityfile C:/Users/Administrator/.ssh/admin
指定连接192.168.1.101的服务器时使用admin私钥进行验证 。
3.上传公钥到服务器,我这里的的服务器是局域网内的192.168.1 .101 。
在git bash里面执行以下命令 :
scp ~/.ssh/admin.pubgit@192.168.1.101 : ~/
4.将公钥写入服务器验证文件
以root登陆服务器 ,再切换到git用户 。
在git用户的家目录下面建立 .ssh/authorized_keys文件 。目录和文件都要新建 。
然后执行cat
admin.pub >> ~/.ssh/authorized_keys
写入公钥验证文件 。
这个文件就是服务器和客户端验证公钥是否相同的文件 。
1、修改/etc/ssh/sshd_config文件:[root@qstarlx /]# vi /etc/ssh/sshd_config ← 用vi打开ssh的配置文件
#protocol 2,1 ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许ssh2方式的连接
↓
protocol 2 ← 修改后变为此状态,仅使用ssh2
#serverkeybits 768 ← 找到这一行,将行首的“#”去掉,并将768改为1024
↓
serverkeybits 1024 ← 修改后变为此状态,将serverkey强度改为1024比特
#permitrootlogin yes ← 找到这一行,将行首的“#”去掉,并将yes改为no
↓
permitrootlogin no ← 修改后变为此状态,不允许用root进行登录
#passwordauthentication yes ← 找到这一行,将yes改为no
↓
passwordauthentication no ← 修改后变为此状态,不允许密码方式的登录
#permitemptypasswords no ← 找到此行将行头的“#”删除,不允许空密码登录
↓
permitemptypasswords no ← 修改后变为此状态,禁止空密码进行登录
保存退出!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)