ssh互信配置
也就是ssh五密码访问,一般用户远程操作
通常应用中也有用到,Hadoop集群就是依靠ssh无密码访问来启动节点的,oracleRAC集群同样也用这个,rsync加密数据传输也有涉及这个
所以笔者此处就对这个ssh互信做个简单的介绍
mkdir ~/.ssh //默认ssh的所有配置信息都存放在用户家目录下的.ssh目录下,此处是个新用户没这个目录手动建立一下
chmod 700 ~/.ssh //然后给他的权限必须是700
cd ~/.ssh //cd到目录下
ssh-keygen -t rsa //生成公钥和私钥,这个命令回生成两个文件id_rsa id_rsa.pub,第二个则是公钥,是可以分发出去的密钥
需要配置互信的没台机器都要有自己的公钥和私钥
然后将所有的公钥收集到一起,然后再分发给所有的机器,这样就所有的机器都拥有其他机器的公钥,这样就可以五密码访问了
还有一个问题就是known_hosts这个文件,这个是传输加密生成的密钥每次一个主机名,将生成一个主机名@密钥的字符
sshd将按照sshd的conf文件/etc/ssh/sshd_conf文件中的
AuthorizedKeysFile .ssh/authorized_keys
项来检测这个公钥文件所有我们将如下方式收集所有的公钥到用户家目录下的.ssh/authorized_keys文件中
ssh-keygen -t rsa 在用户家目录下的.ssh目录下首先用这个生存公钥和私钥,只要参与配置互信的机器都要做
收集公钥,此处以三个机器为例配置如下:
[oracle@ORA1 .ssh]$ ssh ora1 cat ~/.ssh/id_rsa.pub >> authorized_keys //收集自己的公钥
The authenticity of host 'ora1 (127.0.0.1)' can't be established.
RSA key fingerprint is b7:fd:79:da:04:f9:77:c4:63:4d:51:26:5e:85:95:e9.
Are you sure you want to continue connecting (yes/no)? yes //接受传输的密钥
Warning: Permanently added 'ora1' (RSA) to the list of known hosts.
oracle@ora1's password:
[oracle@ORA1 .ssh]$ ls //查看生成的公钥集文件
authorized_keys id_rsa id_rsa.pub known_hosts
[oracle@ORA1 .ssh]$ ssh ora2 cat ~/.ssh/id_rsa.pub >> authorized_keys //收集ora2的公钥
The authenticity of host 'ora2 (192.168.2.242)' can't be established.
RSA key fingerprint is b7:fd:79:da:04:f9:77:c4:63:4d:51:26:5e:85:95:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ora2,192.168.2.242' (RSA) to the list of known hosts.
oracle@ora2's password:
[oracle@ORA1 .ssh]$ ssh ora3 cat ~/.ssh/id_rsa.pub >> authorized_keys //收集ora3的公钥
The authenticity of host 'ora3 (192.168.2.243)' can't be established.
RSA key fingerprint is b7:fd:79:da:04:f9:77:c4:63:4d:51:26:5e:85:95:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ora3,192.168.2.243' (RSA) to the list of known hosts.
oracle@ora3's password:
[oracle@ORA1 .ssh]$
[oracle@ORA1 .ssh]$ cat ./authorized_keys |wc -l //一共三个机器,三个公钥
3
[oracle@ORA1 .ssh]$ cat known_hosts |wc -l //三个传输的密钥
3
然后将这些传输的密钥和这个公钥集,分发给其他机器
[oracle@ORA1 .ssh]$ scp authorized_keys known_hosts ora2:~/.ssh/ //分发给ora2
oracle@ora2's password:
authorized_keys 100% 1179 1.2KB/s 00:00
known_hosts 100% 1186 1.2KB/s 00:00
[oracle@ORA1 .ssh]$ scp authorized_keys known_hosts ora3:~/.ssh/ //分发给ora3
oracle@ora3's password:
authorized_keys 100% 1179 1.2KB/s 00:00
known_hosts 100% 1186 1.2KB/s 00:00
[oracle@ORA1 .ssh]$ ls
authorized_keys id_rsa id_rsa.pub known_hosts
验证ssh无密码访问的效果
[oracle@ORA1 .ssh]$ ssh ora3 date //不用输入密码,返回如下结果,就说明配置成功了
2013年 08月 07日 星期三 15:24:27 CST
[oracle@ORA1 .ssh]$ ssh ora2 date
2013年 08月 07日 星期三 15:24:32 CST
[oracle@ORA3 .ssh]$ ssh ora2 date
2013年 08月 07日 星期三 15:25:07 CST
[oracle@ORA3 .ssh]$ ssh ora1 date
2013年 08月 07日 星期三 15:25:09 CST
[oracle@ORA2 .ssh]$ ssh ora1 date
2013年 08月 07日 星期三 15:25:22 CST
[oracle@ORA2 .ssh]$ ssh ora3 date
2013年 08月 07日 星期三 15:25:26 CST
******************************************
注意:家目录下的".ssh"目录权限为700
目录内文件的权限为600
权限不合适会导致互信失败
******************************************
###########################################
迷途小运维随笔
作者:john
转载请注明出处