【Linux】主机间做信任(单向和双向)

【Linux】主机间做信任(单向和双向)

时间:2015-12-22 11:12:56      作者:vaster      标签: Linux 配置文件      分类: Linux

本机:192.168.137.100(localhost)
远程主机:192.168.137.101(host101)
  • 建立本机与远程主机间的单向信任:
生成密钥文件
[root@localhost ~]# ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
af:ec:24:ef:ab:5b:6b:17:f9:e2:d2:5a:4d:cf:0c:5d root@localhost.localdomain

将本地密钥拷贝到远程主机

[root@localhost ~]# cd .ssh/ 
[root@localhost .ssh]# ls id_rsa  id_rsa.pub 
[root@localhost .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.137.101     
(如果有多台,内容也是被追加进去的)
  • 建立本机与远程主机间的双向信任:(在单向信任的基础上再做的操作)

在远程主机生成密钥文件

[root@localhost .ssh]# ssh 192.168.137.101 "ssh-keygen -b 2048 -t rsa"
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
46:2d:8b:8b:ba:ba:06:a5:b9:59:b6:bb:a5:72:6d:de root@host101.localdomain
将远程主机的公钥拷贝到本机
[root@localhost .ssh]# scp 192.168.137.101:~/.ssh/id_rsa.pub ./authorized_keys
(scp的内容不可以直接被cat,所以,如果有多台,可以先改名为tmp.txt或其他,再追加到authorized_keys) id_rsa.pub                                     100%  406     0.4KB/s   00:00
[root@localhost .ssh]# ll
total 32
-rw-r--r-- 1 root root  406 Oct 15 18:24 authorized_keys
-rw------- 1 root root 1671 Oct 15 17:10 id_rsa
-rw-r--r-- 1 root root  408 Oct 15 17:10 id_rsa.pub
-rw-r--r-- 1 root root  397 Oct 15 18:04 known_hosts
  • 更多主机间建立信任
将生成的authorized_keys文件copy到其他主机的.ssh目录即可。
  • 无法建立信任关系时排错步骤
1.AB主机名是默认的Localhost,如果AB之间的主机名相同,可能会导致无法成功。要修改主机名用hostname 命令,修改/etc/sysconfig/network,then restart your server.
2.查看SSH配置文件/etc/ssh/ssh_config,找到IdentityFile所指定的文件是什么,有的不是默认的id_rsa,这里指定的文件要和第一部分生成的文件名要相同,这里是id_rsa.
2.查看SSH配置文件/etc/ssh/ssh_config,找到IdentityFile所指定的文件是什么,有的不是默认的id_rsa,这里指定的文件要和第一部分生成的文件名要相同,这里是id_rsa.
请检查/etc/ssh/sshd_config 里面是否设置Allowusers了。
请检查/etc/ssh/sshd_config 里面是否设置Allowusers了。
3.查看B机authorized-keys的文件权限是否为600或者644 (linux文件权限详解),如直接在server机器上vi或touch建立文件authorized_keys,可能会导致信任关系无法建立。
3.查看B机authorized-keys的文件权限是否为600或者644 (linux文件权限详解),如直接在server机器上vi或touch建立文件authorized_keys,可能会导致信任关系无法建立。
(实践证明:如果是root之间建信任,直接644就ok,如果是非root用户,644权限是不行的。必须要改成700,600好像也行)
(实践证明:如果是root之间建信任,直接644就ok,如果是非root用户,644权限是不行的。必须要改成700,600好像也行)
4.查看/var/log/secure日志,里面应该有一些蛛丝马迹可以供你参考
4.查看/var/log/secure日志,里面应该有一些蛛丝马迹可以供你参考
 
 
  • ssh-copy-id 的缺憾
ssh-copy-id有一个很要命的问题,那就是缺省它仅仅支持SSH运行在22端口的情况,不过实际上出于安全的需要,我们往往都会更改服务器的SSH端口,比如说改成10022端口,这时候你运行ssh-copy-id就会报错了,直接修改ssh-copy-id脚本当然可以修正这个问题,但是那样显得太生硬了,实际上还有更好的办法:
[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]
[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]
# vi ~/.ssh/config 加上内容: Host server Hostname ip Port 10022 你也可以单独只加入Port一行配置,那样就是一个全局配置,保存后再运行ssh-copy-id命令就不会报错了。 补充:经网友提示,如果端口不是22,不修改config文件,按如下方式也可以: ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
附:
附:
# ssh-keygen
# cat ~/.ssh/id_rsa.pub | ssh user@server "cat - >> ~/.ssh/authorized_keys"

时间:2015-12-22 11:12:56      作者:vaster      标签: Linux 配置文件      分类: Linux
  • 分享到:
  • 微博
  • QQ空间
  • 腾讯微博
  • 微信

Copyright © 2015 Gitblog | Proudly powered by Gitblog.