(零)背景信息:
系统信息:Centos6.5
SSH介绍:百度百科
形象化解释:假设现在有A机器(IP:192.168.1.118)和B机器(IP:192.168.1.124),现在要实现使用A机器远程登录B机器时,不需要密码,就要使用SSH。(PS:在公司中,一般情况下,A机器为员工的机器,B机器为公司数据服务器,在工作中员工需要访问服务器请求数据时,为了安全考虑,一般不会告诉员工服务器的用户名和密码,而是使用SSH提供的加密技术解决)
(一)步骤:
首先:需要在A机器中使用root用户登录(如果是普通用户,需要输入命令“su”,之后输入root的密码转换到root权限)。
第二步:是进入ssh的目录,输入命令“cd ~/.ssh/”进入。
第三步:输入生成秘钥的命令“ssh-keygen -t rsa”,这条指令的意义是使用rsa加密。之后默认一直敲空格即可。这步进行完成后,即在A机器上生成了A机器的公钥和密钥。(PS:由于我电脑上之前已经存在id_rsa这个文件,所以会提示“是否选择覆盖”,如果是第一次进行,就不会有这个提示)
第四步:查看生成的文件及其权限,输入命令“ll”,结果如下图,可以看到有两个文件“id_rsa”和“id_rsa.pub”生成了,它们分别是“id_rsa”——私钥、“id_rsa.pub”——公钥。私钥一定要保护好哦,因为它是不能公开的,用于验证,一旦公开,别人就可以使用它来冒充你的身份啦。公钥是可以发送个任何人的哦,它和私钥是配对产生的。
第五步:这时候就需要联系公司服务器管理员了,将自己刚刚生成的id_rsa.pub文件发送给他,管理员会登录B机器,将A机器的.pub文件拷贝到B机器的.ssh目录下面,在输入命令“cat id_dsa.pub >> ~/.ssh/authorized_keys”,这条指令的功能是将id_dsa.pub文件合并到authorized_keys文件末尾,就相当于在B机器中增加了A机器的公钥。这样A机器就可以登录B机器了(登录方法:在A机器上面输入“ssh 192.168.1.124”,192.168.1.124是B机器的IP地址,需要根据情况选择更换)。
(二)问题:
前面的步骤都配置好后,但是还是不能访问,提示权限错误,那么应该是文件和目录的权限设置错误。需要使用“chmod 700 *”设置文件和目录的权限(700代表上图中前面的“rwx------”这个权限信息,最好不要设置成777,因为777权限太大,不安全。*代表该目录下面的所有文件,*可以换成指定的一个文件)
(三)总结:
生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys中才可以生效。
如果想要两个机器互相之间访问,那么就将上述步骤在B机器中进行,之后在A机器的authorized_keys中添加B机器的公钥信息即可。