红联Linux门户
Linux协助

根据vagrant东西在win7下免密登录linux

发布时刻:2016-11-23 09:39:22来历:linux网站作者:Memset
一、SSH加密办法
SSH选用的是”非对称密钥体系”,即耳熟能详的公钥私钥加密体系,其安全验证又分为两种等级。
 
1.根据口令的安全验证
这种办法运用用户名暗码进行联机登录,一般状况下咱们运用的都是这种办法。整个进程大致如下:
(1)客户端主张衔接恳求。
(2)长途主机收到用户的登录恳求,把自己的公钥发给客户端。
(3)客户端接纳长途主机的公钥,然后运用长途主机的公钥加密登录暗码,紧接着将加密后的登录暗码连同自己的公钥一起发送给长途主机。
(4)长途主机接纳客户端的公钥及加密后的登录暗码,用自己的私钥解密收到的登录暗码,假如暗码正确则答应登录,到此为止两边互相具有了对方的公钥,开端双向加密解密。
PS:当网络中有另一台冒牌服务器假充长途主机时,客户端的衔接恳求被服务器B阻拦,服务器B将自己的公钥发送给客户端,客户端就会将暗码加密后发送给冒牌服务器,冒牌服务器就能够拿自己的私钥获取到暗码,然后随心所欲。因而当第一次链接长途主机时,在上述过程的第(3)步中,会提示您当时长途主机的”公钥指纹”,以承认长途主机是否是正版的长途主机,假如挑选持续后就能够输入暗码进行登录了,当长途的主机承受今后,该台服务器的公钥就会保存到 ~/.ssh/known_hosts文件中。
 
2.根据密匙的安全验证
这种办法你需求在当时用户家目录下为自己创立一对密匙,并把公匙放在需求登录的服务器上。当你要衔接到服务器上时,客户端就会向服务器恳求运用密匙进行安全验证。服务器收到恳求之后,会在该服务器上你所恳求登录的用户的家目录下寻觅你的公匙,然后与你发送过来的公匙进行比较。假如两个密匙共同,服务器就用该公匙加密“质询”并把它发送给客户端。客户端收到“质询”之后用自己的私匙解密再把它发送给服务器。与第一种等级比较,第二种等级不需求在网络上传送口令。
PS:简略来说,便是将客户端的公钥放到服务器上,那么客户端就可避免暗码登录服务器了,那么客户端的公钥应该放到服务器上哪个当地呢?默许为你要登录的用户的家目录下的 .ssh 目录下的 authorized_keys 文件中(即:~/.ssh/authorized_keys)
 
二、装备免密登录
1、布景介绍
方针:A免密登录B
体系:A为win7,B为centos7.0(vitualbox)
东西:vagrant(https://www.vagrantup.com/),ssh(git自带,需求装备环境变量)
布景简介:我在windows7上面运用vagrant将网上的box生成了虚拟机,当然中心运用了virtualbox作为中心东西,可是每次运用vagrant翻开虚拟机都需求运用暗码,很费事,所以想装备免密登录,可是装备完结之后仍是不可。
 
2、运用第二种验证办法装备
2.1.在windows上面生成密钥和公钥
在任何当地运用ssh-keygen -t -rsa
该指令表明的是运用rsa算法生成公钥和私钥,当然算法还有dsa算法也能够用。
此过程在提示Enter file in which to save the key(xxxx)的时分,需求供给途径和文件,否则会生成不成功,此后会提示输入暗码,能够直接回车越过
根据vagrant东西在win7下免密登录linux
一起,主张将文件生成在用户目录下的.ssh文件夹下面
根据vagrant东西在win7下免密登录linux
生成完结之后在输入的文件途径下检查
根据vagrant东西在win7下免密登录linux
2.2.将私钥添加到SSH agent中
由于默许只读取id_rsa,为了让SSH辨认新的私钥,需将其添加到SSH agent中ssh-add ~/.ssh/id_rsa
根据vagrant东西在win7下免密登录linux
假如呈现Could not open a connection to your authentication agent的过错,试着用一下的指令:
ssh-agent bash
ssh-add ~/.ssh/id_rsa
2.3.复制公钥到linux
1)登录linux,检查当时用户,我的用户为root,所以直接进入root目录,当然也能够直接运用cd ~来进入当时用户目录,假如客户机多用户,主张检查下当时登录的用户。
根据vagrant东西在win7下免密登录linux
2)确认linux下面是否有ssh,假如没有则履行yum/apt-get install ssh
根据vagrant东西在win7下免密登录linux
2)在用户目录下创立.ssh目录
根据vagrant东西在win7下免密登录linux
3)复制win7生成的公钥到linux下方才创立的.ssh里边,而且重命名为authorized_keys
根据vagrant东西在win7下免密登录linux
4)修正.ssh权限
chmod 700 -R .ssh修正目录权限,这点很重要, 有必要修正, 否则会装备不成功。
 
三、问题解决
1、vagrant登录用户装备
本认为功德圆满,可避免密登录了,可是不对,我发动vagrant的时分,呈现了SSH auth method: password
根据vagrant东西在win7下免密登录linux
这不仍是要暗码么。检查装备,本来我在运用linux的时分,运用了root登录,并进行了装备,所以导致需求暗码
根据vagrant东西在win7下免密登录linux
所以注释掉其间两行,仍然能够root登录。
根据vagrant东西在win7下免密登录linux
 
2、私钥的运用
当我重启虚拟机,看到default: SSH auth method: private key时,认为总算搞定了,可是接下来就为难了。
根据vagrant东西在win7下免密登录linux
这什么状况,不是就卡死了么。
仔细看告警,是权限授权失利,跟咱们主机相关的权限就只有公钥和私钥。这种长时刻无法经过vagrant ssh登陆的问题或许会由于ssh认证机制导致失利。vagrant默许选用key登录,但所用的KeyPair或许没有正常装备。
运用vagrant ssh-config检查
根据vagrant东西在win7下免密登录linux
看起来如同没什么不对,由于私钥是有的,可是一想,私钥我没装备过,这个是在我树立box的时分有的,那时分还没在本机生成过公钥和私钥呢,所以决断把方才在本机生成的私钥复制过来,而且改名为private_key,覆盖掉f:/DownLoad/Vagrant/Box/centos7.0/.vagrant/machines/default/virtualbox/private_key
 
3、验证
上面的过程完结之后,运用vagrant up发动虚拟机,然后运用vagrant ssh能顺畅登录虚拟机则表明成功。
注:假如环境不是运用的vagrant登录虚拟机,则只需看一二节即可,假如是其他ssh东西则需求看状况装备ssh服务或许私钥。
 
本文永久更新地址:http://www.138comgov138.com/linux/26243.html