Linux下配置SSH无密码访问

网上资料很多,基本都是一样。
首先确保你已安装ssh,RedHat自带有openSSH,所以不需要考虑。

第一步:使用 #ssh-keygen -t dsa ,使用这个命令之后会提示是否输入密码,这里不输入密码,一路enter下去就可以了,最后会在用户目录下的隐藏文件夹.ssh下生成id.dsa和id_dsa.pub两个文件,分别为私钥和公钥。
也可以直接使用#ssh -keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa,这样就无需再被问询了。
这里说一下SSH加密有两种方式:dsa和rsa,对应的命令一样只是在-t指示加密类型时一个是dsa,另一个是rsa。

第二步:将公钥追加到authorized_keys文件中,也在.ssh目录下,没有也没关系,使用#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys命令即可。

第三步:将authorized_keys拷贝到其他需要被SSH无密码访问的机器上(注意这里是被访问,也就是如果你想从1无密码访问2,那么就得在1上生成密钥对,然后将公钥丢到2上)

scp ~/.ssh/authorized_keys root@(other machine ip):/~/.ssh/

scp作用是linux从本机复制文件到远程机器,可以在scp后面加上-r,表示传输文件夹
到这里配置就完成了,下面可以测试下是否可以无密码访问,测试方法可以先用本机访问本机,使用#ssh localhost,这里第一次会提示你访问的host无法连接,是否仍继续连接,输入yes,然后输入密码,连接上之后,使用#exit可以退出,在此连接就无需密码了。同样的你可以测试一下连接远程机器(你丢authorized_keys文件的机器),过程和localhost一样。如果可以说明配置成功。

可能出现的问题:有些时候就算都按照步骤一步不错的弄,到最后也无法实现无密码访问,可能的问题是用户问题,我之前也遇到过,在一个普通用户下尝试的,结果不行,然后换成root用户就可以了,两边都是用root。
建议新手就直接使用root,可以省很多事,不要怕root权限过高误删什么东西,不然权限会搞死人

希望对其他人有所帮助,我也是参考网上来写的,就当给自己做个笔记吧 嘿嘿