关于新创建一个虚拟机以及多台机器ssh无密登录的一些细节问题补充
2017-06-14 21:12
886 查看
之前我的博客里写了在VMWare下如何安装centos7以及如何配置多台机器之间实现ssh无密登录,但是当时也仅仅是安装以及实现相应效果,具体有些细节没有考虑,前几天又重新安装centos7并且测试了下ssh无密登录,这里记录一下之前没有注意到的细节问题,希望能对大家有所帮助。
1 .按照我的博客那种方式创建虚拟机,即使分配给这个虚拟机20G空间,也不会立即占用20G空间,只会根据实际需要增长
2 .按照我的那种方式创建虚拟机,无需格外设置,本地与虚拟机可以自由相互ping通
3 .第一次是在root目录下没有.ssh这个文件夹,需要手动ssh生成密钥公钥来生成公钥私钥之后就会出现这个文件夹(执行密钥生成命令会自动创建.ssh目录)
4 .虚拟机如果使用的是链接克隆的话,那么创建出来的新的虚拟机的ip地址会自动修改,具体是当前ip地址的最后一位加1,也就是无需手动修改了
5 .一开始/root/.ssh/下面是没有known_hosts文件的,也没有authorized_keys文件的
6 .当ssh远程登录到另一台机器上,一开始没有设置免密登录,输入密码后,之后会将登录的远程这台机器的ECDSA添加进本机的known_hosts里面,简单来说就是a远程登录b,会在a的/root/.ssh下面创建一个known_hosts文件,将b的ecdsa内容添加到a的known_hosts里面 这里known_host文件里存放的貌似是一个ip地址,虽然由a远程登录b,c,但是是同一个ip所以这里known_hosts文件里只是ip不一样,后面的一堆看似是乱码的东西是一样的
7 当a远程登录b和c后,会在a的known_hosts里面记录b和c的信息,但是没有a本身的信息,这样只能保证a远程登录b和c,但是不能保证b和c远程无密登录a,这里只需要在a的known_hosts里面把a的ip地址和后面的乱码添加进去即可乱码和b c的乱码内容一致,
8 将b和c的公钥全部拷贝到a的authorized_keys里,ssh root@10.8.26.196 cat ~/.ssh/id_rsa.pub>> authorized_keys 用的是这个命令
9 。此时abc的公钥全部在a的authorized_keys中,abc的ip信息也全部在a的known_hosts,然后将a中的authorized_keys和known_hosts拷贝到b和c即可,本质就是让这三台机器互相知道对方的存在,这样就省却了免认证的步骤
10 经测试,ssh远程登录如果只是将三台机器的公钥拷贝到每台机器上是不行的,必须要将known_hosts里面的内容拷贝到三台机器上才会生效,为了简单起见,每个known_host里面存放每个ip地址,除了ip其他的乱码都一样即可,这样就能实现无密登录
11 这里还需要值得注意的一点, scp known_hosts root@test2:/root/.ssh/
我这里远程拷贝和远程登录都用到了root@ip地址,之前看到的ssh免密登录都修改了/etc/hosts下面的文件,就是添加ip地址和主机名hostname的映射,实际上这一步是没必要做的,设置这一步的主要目的就是让Linux解析主机名,找到对应的ip名
如果没有修改/etc/hosts文件,那么你远程登录只能用ip地址不能用主机名,如果修改了该文件,那么可以用主机名代替ip地址进行远程操作。
12 之前认为虚拟机的链接克隆可能会导致无法免密登录,实际上没有任何影响,至此关于远程无密登录设置的疑问就全部解释清楚了
1 .按照我的博客那种方式创建虚拟机,即使分配给这个虚拟机20G空间,也不会立即占用20G空间,只会根据实际需要增长
2 .按照我的那种方式创建虚拟机,无需格外设置,本地与虚拟机可以自由相互ping通
3 .第一次是在root目录下没有.ssh这个文件夹,需要手动ssh生成密钥公钥来生成公钥私钥之后就会出现这个文件夹(执行密钥生成命令会自动创建.ssh目录)
4 .虚拟机如果使用的是链接克隆的话,那么创建出来的新的虚拟机的ip地址会自动修改,具体是当前ip地址的最后一位加1,也就是无需手动修改了
5 .一开始/root/.ssh/下面是没有known_hosts文件的,也没有authorized_keys文件的
6 .当ssh远程登录到另一台机器上,一开始没有设置免密登录,输入密码后,之后会将登录的远程这台机器的ECDSA添加进本机的known_hosts里面,简单来说就是a远程登录b,会在a的/root/.ssh下面创建一个known_hosts文件,将b的ecdsa内容添加到a的known_hosts里面 这里known_host文件里存放的貌似是一个ip地址,虽然由a远程登录b,c,但是是同一个ip所以这里known_hosts文件里只是ip不一样,后面的一堆看似是乱码的东西是一样的
7 当a远程登录b和c后,会在a的known_hosts里面记录b和c的信息,但是没有a本身的信息,这样只能保证a远程登录b和c,但是不能保证b和c远程无密登录a,这里只需要在a的known_hosts里面把a的ip地址和后面的乱码添加进去即可乱码和b c的乱码内容一致,
8 将b和c的公钥全部拷贝到a的authorized_keys里,ssh root@10.8.26.196 cat ~/.ssh/id_rsa.pub>> authorized_keys 用的是这个命令
9 。此时abc的公钥全部在a的authorized_keys中,abc的ip信息也全部在a的known_hosts,然后将a中的authorized_keys和known_hosts拷贝到b和c即可,本质就是让这三台机器互相知道对方的存在,这样就省却了免认证的步骤
10 经测试,ssh远程登录如果只是将三台机器的公钥拷贝到每台机器上是不行的,必须要将known_hosts里面的内容拷贝到三台机器上才会生效,为了简单起见,每个known_host里面存放每个ip地址,除了ip其他的乱码都一样即可,这样就能实现无密登录
11 这里还需要值得注意的一点, scp known_hosts root@test2:/root/.ssh/
我这里远程拷贝和远程登录都用到了root@ip地址,之前看到的ssh免密登录都修改了/etc/hosts下面的文件,就是添加ip地址和主机名hostname的映射,实际上这一步是没必要做的,设置这一步的主要目的就是让Linux解析主机名,找到对应的ip名
如果没有修改/etc/hosts文件,那么你远程登录只能用ip地址不能用主机名,如果修改了该文件,那么可以用主机名代替ip地址进行远程操作。
12 之前认为虚拟机的链接克隆可能会导致无法免密登录,实际上没有任何影响,至此关于远程无密登录设置的疑问就全部解释清楚了
相关文章推荐
- 关于FreeBSD虚拟机用root账户登录SSH和连接Xshell的问题
- 关于SSH远程登录和远程连续执行代码的一些问题
- 关于更新windows Service Pack 3 更新后系统登录出现“一个问题阻止Windows正确检查机器的许可证。错误代码 0x80070002”问题解决方案
- 今天在看一些面试题的时候遇到的一个关于strcmp()返回值的细节问题
- 这篇文档的价值在于详细的描述了三层交换的基本流程,以及一些关于三层交换表的有价值的技术细节。让读者对三层交换的认识提升到一个新的高度! 这篇文档的价值在于详细的描述了三层交换的基本流程,以及一些关于三
- linux如何创建和管理多个不同模式的bond的以及一些细节问题
- 关于CentOS7配置SSH免密登录,以及遇到的配置好后还需要输入密码的问题
- 补充一个小问题:关于国嵌视频里面的进程创建例程的小错误
- C++Builder中关于INDY库的使用 以及一些问题的解决(E2238 Multiple declaration for 'fd_set')
- 学习类,笔记!关于一个函数里面定义多个类以及相互访问的问题
- 关于print函数的一些细节问题探讨
- 【主题】关于做代码以及文档review的一些问题
- 关于网页*静态化*及SEO问题的一些补充
- 关于对视图创建索引的一些问题
- 关于《c语言的一个小问题》的补充
- 关于进入windows界面时,提示了:一个问题阻止windows正确检查此机器许可证,错误代码为:
- 最近网站改版关于IE8兼容的一些问题以及解决办法
- 关于无线数据传输中产生的流量的一些计算方法以及问题!
- 关于网页*静态化*及SEO问题的一些补充(转)
- 终于发现自己存在的一个问题:关于用不用VC创建对象的问题