CentOS7实现ssh免密登陆
环境:
centos 7 windows x64位
1.查看是否安装了全部的ssh服务
rpm -qa|grep -E "openssh"
结果应该是显示以下全部:
1 openssh-ldap-6.6.1p1-35.el7_3.x86_64 2 openssh-clients-6.6.1p1-35.el7_3.x86_64 3 openssh-6.6.1p1-35.el7_3.x86_64 4 openssh-askpass-6.6.1p1-35.el7_3.x86_64 5 openssh-server-6.6.1p1-35.el7_3.x86_64 6 openssh-keycat-6.6.1p1-35.el7_3.x86_64 7 openssh-server-sysvinit-6.6.1p1-35.el7_3.x86_64
2.若缺失,就安装
sudo yum install openssh*
3.开启ssh服务
sudo systemctl enable sshd sudo systemctl start sshd
或者 service sshd start
4. ssh服务启动成功后,自动开启默认的22端口
可通过以下命令查询:
netstat -tnulp
结果显示:
如果没有开启22端口,通过以下命令开启:
1 sudo firewall-cmd --zone=public --add-port=22/tcp --permanent 2 sudo service firewalld restart
5. 生成密钥对
1 cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost 2 ssh-keygen -t rsa # 或者输入ssh-keygen也可。会有提示,都按回车就可以 3 cat ./id_rsa.pub >> ./authorized_keys # 将公钥加入授权列表文件中
6. 修改授权列表 authorized_keys的权限
chmod 600 authorized_keys
7.验证免密登陆是否配置成功
ssh localhost ## 或者 ssh e2d670ea9ad7 ## 或者 ssh 10.141.0.42
此时应该显示:
如果让你按回车就按,那是因为是第一次登陆的原因,exit推出后,第二次登陆就没了,结果如上图。
8.想要退出登录
exit
ps:想要copy密钥到其他需要远程连接的节点上:
ssh-copy-id 主机名
之后执行ssh 主机就可以免密登录了,此外ssh连接用的22号端口默认是开放的,所以不用担心防火墙的问题
当ssh无法连接时,可以先尝试能否ping通,然后检查/etc/hosts文件,如果要在本机上执行hadoop的mapreduce程序,还需要要执行下ssh-copy-id 本机