linux下设置或替换登录密钥

客户端首先在服务器注册自己的公钥 在通过私钥进行登录验证 服务器会根据登录用户来用客户端注册的公钥进行匹配 匹配通过放行否则拒绝
1.通过ssh-keygen -t rsa -f 私钥文件 -C "email" 默认私钥匙文件~/.ssh/id_rsa 同时在该目录下会生成与之配对的公钥后缀为pub
     生成密钥时会提示你输入密码  直接回车就可以 如果输入了密码 那么ssh登录时也要输入相同的密码方可登录
     当有多台服务器且每台服务器ssh链接时用独立的密钥 又不想通过-i指定密钥文件 那么就配置个config吧
     ~/.ssh/config
Host *.vip.com
IdentityFile  ~/.ssh/id_rsa.vip

如果需要增加用户的话
[root@VM_57_85_centos ~]# useradd vip
[root@VM_57_85_centos ~]#  passwd vip
[root@VM_57_85_centos ~]# su vip
[vip@VM_57_85_centos ~]$ ssh-keygen -t rsa //会生成.ssh目录 和公私钥 不会生成 authorized_keys文件 需自己创建
[vip@VM_57_85_centos ~]$ touch  authorized_keys
[vip@VM_57_85_centos ~]$  chmod 600 authorized_keys

     
2.通过scp上传公钥到服务器
$ scp -P 8888 -i ~/key/app_server_access.pub ~/.ssh/id_rsa.pub  [email protected]:~/.ssh/id_rsa_boss.pub
//如果服务器报错没有.ssh这个目录的话 上传到~目录
$ scp -P 8888 -i ~/key/app_server_access.pub ~/.ssh/id_rsa.pub  [email protected]:~/ id_rsa_boss
id_rsa.pub 100% 401 0.4KB/s 00:00
scp [参数] localFile remoteFile 或 scp [参数] remoteFIle localFile
-P port               ssh端口号
-i identity_file   私钥文件 ssh和scp命令首先使用私钥文件如果密钥文件里的密钥不匹配  使用~/.ssh/id_rsa进行匹配 所以测试时需要注意
-P和-i 必须写在 localFile的前面 否则报错
3.ssh到服务器
$ ssh -p 8888 [email protected] -i  ~/key/app_server_access
Last login: Mon Jan 1 19:30:54 2018 from 106.121.66.246
4.进入服务器密钥目录没有该目录则创建

[vip@VM_57_85_centos ~]$ mkdir .ssh
[vip@VM_57_85_centos rootx]$ chmod 700 .ssh
[vip@VM_57_85_centos ~]$ cd ~/.ssh
[vip@VM_57_85_centos .ssh]$
5.查看是否存在authorized_keys文件没有则创建该文件
   该文件存储着允许访问服务器的密钥 当客户通过私钥登或公钥录时拿该文件里的公钥匹配验证 验证通过允许登录
6.把上传的公钥添加到 authorized_keys文件末尾

[vip@VM_57_85_centos .ssh]$ touch authorized_keys
[vip@VM_57_85_centos .ssh]$ chmod 600 authorized_keys
[vip@VM_57_85_centos .ssh]$ mv  id_rsa_boss.pub ssh
[vip@VM_57_85_centos .ssh]$ cat  id_rsa_boss.pub >> authorized_keys
//查看 authorized_keys最后一行 也就是刚才添加的key 其实只要没报错  没必要看
[vip@VM_57_85_centos .ssh]$ tail -1 authorized_keys
7.使用新密钥登陆
//测试ssh联通性
[vip@VM_57_85_centos .ssh]$ rm -f  id_rsa_boss.pub //测试都通过了服务器上该文件也不需要了
$ ssh -p 1221 [email protected]
Last login: Mon Jan 1 19:45:24 2018 from 106.121.66.246
如果登录不成功查看 .ssh权限是不是700 authorized_keys权限是不是600 公钥是不是错的 用记事本去掉自动换行 确保公钥字串无空格且只有一行
如果还是登不了 管你有没有病   ssh-agent上起  在不行从头来过只要不进入死循环就ok了


猜你喜欢

转载自blog.csdn.net/nailsoul/article/details/7581885