Linux服务器配置SSH免密登录
SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
我们用SSH主要是可以实现免密登录目标服务器。
下面我们准备两台服务器,主服务器192.168.1.120,目标服务器192.168.1.120
主服务器上执行,生成SSH秘钥的命令:ssh-keygen -t rsa
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): -----> 输入key文件的名称,不用填直接回车
Enter passphrase (empty for no passphrase): -----> 输入使用key时的密码,不建议填,直接回车
Enter same passphrase again: -----> 再次输入密码, 直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AxIvlKiGQACMHQJrGkTQhkEbdNMNuIRt0PoPGgm7O2w root@localhost
The key's randomart image is:
+---[RSA 2048]----+
|^&*==oo |
|==OBo+ . |
|==+ + o |
|*+ . o . |
|+.o S |
|.o o . |
|..o o |
|oE . |
|oo |
+----[SHA256]-----+
这是秘钥已经生成了,上面也显示了秘钥的存放位置是 /root/.ssh 我们进入看一下,id_rsa是私钥文件,自己留着的。id_rsa.pub是公钥文件,要发给其他服务器。
[root@localhost ~]# cd /root/.ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
接下来用scp命令,将母机产生的key拷一份到远程的linux服务器上,并命名成authorized_keys;命令:scp ~/.ssh/id_rsa.pub root@192.168.1.121:/root/.ssh/authorized_keys
[root@localhost .ssh]# scp ~/.ssh/id_rsa.pub root@192.168.1.121:/root/.ssh/authorized_keys
The authenticity of host '192.168.1.121 (192.168.1.121)' can't be established.
ECDSA key fingerprint is SHA256:jQ27JOLmEdm90C1IhGLkqy+em2/49lIVcXoB50nImX8.
ECDSA key fingerprint is MD5:5d:ea:ef:95:61:82:e8:21:ed:e4:8f:c2:dd:ef:99:dd.
Are you sure you want to continue connecting (yes/no)? yes -----> 问你是否继续连接,输入yes
Warning: Permanently added '192.168.1.121' (ECDSA) to the list of known hosts.
root@192.168.1.121's password: ----> 输入目标服务器的root密码,输入的密码是不显示的
id_rsa.pub
这是我们登陆目标服务器121查看一下/root/.ssh/下是否有authorized_keys文件,如果已经有说明同步成功了,可以在主服务器上使用ssh命令远程连接。
[root@localhost .ssh]# ssh root@192.168.1.121 ---> 使用SSH命令,登陆远程服务器,并使用root账号。
Last login: Wed May 20 13:31:00 2020 from 192.168.1.120
连接成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通