CentOS7实现ssh免密登陆
环境:
centos 7 windows x64位
1.查看是否安装了全部的ssh服务
1 | 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 本机
分类:
Linux虚拟机
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通