基于ssh免密码登录

来源:互联网 发布:envi裁剪landsat8数据 编辑:程序博客网 时间:2024/05/22 13:13

免密钥登录方式步骤

  • 首先在客户端生成一对密钥(ssh-keygen)
  • 并将客户端的公钥ssh-copy-id 拷贝到服务端
  • 当客户端再次发送一个连接请求,包括ip、用户名
  • 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如: acdf
  • 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
  • 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
  • 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

免密码登录

免密码登录实现

  • 在客户端生成密钥对,如果不用-P选项会让输入密码,-f是指定密钥存放路径,默认路径~/.ssh/id_rsa,默认是rsa加密,不写也行
    ssh-keygen -t rsa [-P ”] [-f “~/.ssh/id_rsa”]
[root@centos7 ~]# ssh-keygen -P '' -f ~/.ssh/id_rsa
  • 把公钥文件传输至远程服务器对应用户的家目录
    ssh-copy-id [-i [identity_file]] [user@]host
[root@centos7 ~]# ssh-copy-id -i ~/.ssh/id_rsa root@192.168.6.6 #如果不写用户名默认和当前用户名一样的用户
  • 重设私钥口令
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
#把密码置空,密码位数要大于4[root@centos7 ~]# ssh-keygen -p -P hahaha -N '' -f .ssh/id_rsa

验证代理(authentication agent)

保存解密后的密钥
• 这样口令就只需要输入一次
• 在GNOME中,代理被自动提供给root用户
• 否则运行:ssh-agent bash
• 钥匙通过命令添加给代理:ssh-add
[root@centos7 ~]# ssh-agent bash[root@centos7 ~]# ssh-add

当退出当前终端这个代理会失效,得重新输入密码

原创粉丝点击