vagrant免密码登录linux

vagrant工具免密登录linux

  • SSH加密的方式
    • 基于口令的安全验证
    • 基于密匙的安全验证
  • 配置免密登录
    • 使用用户名、密码方式实现登录
    • 使用公钥私钥方式实现登录
      • 在win7上生成私钥和公钥
      • 将私钥添加到SSH agent中
      • 拷贝公钥到linux
      • 配置vagrantfile
      • 复制私钥至virtualbox目录
    • 验证

SSH加密的方式

SSH采用的是”非对称密钥系统”,也就是公钥私钥加密系统,其安全验证又分为两种级别。

基于口令的安全验证

这种方式使用用户名密码进行联机登录,一般情况下我们使用的都是这种方式。整个过程大致如下:

  1. 客户端发起连接请求。
  2. 远程主机收到用户的登录请求,把自己的公钥发给客户端。
  3. 客户端接收远程主机的公钥,然后使用远程主机的公钥加密登录密码,紧接着将加密后的登录密码连同自己的公钥一并发送给远程主机。
  4. 远程主机接收客户端的公钥及加密后的登录密码,用自己的私钥解密收到的登录密码,如果密码正确则允许登录,到此为止双方彼此拥有了对方的公钥,开始双向加密解密。
    PS:当网络中有另一台冒牌服务器冒充远程主机时,客户端的连接请求被服务器B拦截,服务器B将自己的公钥发送给客户端,客户端就会将密码加密后发送给冒牌服务器,冒牌服务器就可以拿自己的私钥获取到密码,然后为所欲为。因此当第一次链接远程主机时,在上述步骤的第 3 步中,会提示您当前远程主机的”公钥指纹”,以确认远程主机是否是正版的远程主机,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到 ~/.ssh/known_hosts文件中。

基于密匙的安全验证

这种方式你需要在当前用户家目录下为自己创建一对密匙,并把公匙放在需要登录的服务器上。当你要连接到服务器上时,客户端就会向服务器请求使用密匙进行安全验证。服务器收到请求之后,会在该服务器上你所请求登录的用户的家目录下寻找你的公匙,然后与你发送过来的公匙进行比较。如果两个密匙一致,服务器就用该公匙加密“质询”并把它发送给客户端。客户端收到“质询”之后用自己的私匙解密再把它发送给服务器。与第一种级别相比,第二种级别不需要在网络上传送口令。

PS:简单来说,就是将客户端的公钥放到服务器上,那么客户端就可以免密码登录服务器了,那么客户端的公钥应该放到服务器上哪个地方呢?默认为你要登录的用户的家目录下的 .ssh 目录下的 authorized_keys 文件中(即:~/.ssh/authorized_keys)

配置免密登录

背景介绍:
目标:A免密登录B
系统:A为win7,B为centos7.0(vitualbox)
工具:vagrant,ssh

使用用户名、密码方式实现登录

在vagrantfile中配置登录的用户名和密码即可:
config.ssh.username = “vagrant”
config.ssh.password = “vagrant”

使用公钥私钥方式实现登录

在win7上生成私钥和公钥

   在用户目录下的.ssh文件夹下面执行命令:ssh-keygen -t -rsa

该命令表示的是使用rsa算法生成公钥和私钥。

此步骤在提示Enter file in which to save the key(xxxx)的时候,需要提供路径和文件,不然会生成不成功,此后会提示输入密码,可以直接回车跳过。

生成完成之后在输入的文件路径下查看已生成的公钥和私钥文件。

将私钥添加到SSH agent中

因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中: ssh-add ~/.ssh/id_rsa

拷贝公钥到linux

  1. 在用户目录下创建.ssh目录
  2. 拷贝win7生成的公钥到linux下刚才创建的.ssh里面,并且重命名为authorized_keys
  3. 修改.ssh权限, chmod 700 -R .ssh 修改目录权限

配置vagrantfile

在vagrantfile中配置登录的用户名,密码项注释或删除掉:
config.ssh.username = “vagrant”
#config.ssh.password = “vagrant”

复制私钥至virtualbox目录

将生成的私钥文件拷贝到以下目录:
工作目录/.vagrant/machines/default/virtualbox/
并重命名为 private_key

验证

上面的步骤完成之后,使用vagrant reload --provision 重启动虚拟机,然后使用vagrant ssh能顺利登录虚拟机则表示成功

你可能感兴趣的:(vagrant,vagrant,ssh,vagrant,免密登录)