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 本机

posted on 2020-06-28 16:23  CC陈三愿  阅读(562)  评论(0编辑  收藏  举报