本教程介绍在Fedora 10系统上配置SSH免密登录的步骤:首先在本地终端执行ssh-keygen -t rsa生成SSH密钥对,默认保存于~/.ssh/目录;然后使用ssh-copy-id username@target_host将公钥复制到目标主机的~/.ssh/authorized_keys文件中(若目标主机不支持该命令,可手动将id_rsa.pub内容追加至目标主机authorized_keys文件,并确保目录权限700、文件权限600);最后通过ssh username@target_host测试免密登录,成功则无需输入密码,需注意检查目标主机SSH服务是否开启(service sshd status)及防火墙配置(允许22端口访问)。
SSH(Secure Shell)是Linux系统中常用的远程管理协议,通过加密传输保障数据安全,默认情况下,SSH登录需要输入密码,但频繁输入密码不仅繁琐,还存在密码泄露风险,配置SSH免密登录后,客户端可通过密钥对直接登录远程服务器,提升便捷性与安全性,本文以Fedora 10系统为例,详细讲解SSH免密登录的配置步骤。
环境准备
在配置前,需确保以下条件满足:
- 两台Fedora 10系统:一台作为客户端(本地机器,用于发起登录),一台作为服务端(远程机器,用于被登录)。
- 网络互通:两台系统能通过IP地址互相
ping通(可通过ping 对方IP测试)。 - SSH服务已安装:服务端需安装
openssh-server,客户端需安装openssh-clients(Fedora 10默认可能未安装,可通过yum命令安装)。
检查并安装SSH服务
服务端(远程机器)安装SSH服务:
yum install openssh-server -y
安装完成后,启动SSH服务并设置开机自启:

service sshd start # 启动SSH服务 chkconfig sshd on # 设置开机自启
客户端(本地机器)安装SSH客户端:
yum install openssh-clients -y
获取双方IP地址
- 客户端IP:执行
ifconfig命令,查看eth0或eth1中的inet addr(如168.1.100)。 - 服务端IP:同理执行
ifconfig获取(如168.1.200)。
生成SSH密钥对(客户端操作)
免密登录的核心是使用非对称加密:客户端生成一对密钥(私钥+公钥),私钥保留在本地,公钥上传到服务端,登录时,服务端用公钥验证客户端的私钥,实现无需密码的认证。
执行密钥生成命令
在客户端终端中,运行以下命令:
ssh-keygen -t rsa -b 2048
参数说明:
-t rsa:指定加密类型为RSA(目前最常用);-b 2048:指定密钥长度为2048位(安全性更高)。
设置密钥存储路径和密码(可选)
命令执行后,会提示以下信息:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/用户名/.ssh/id_rsa):
直接按回车键,使用默认路径(/home/用户名/.ssh/id_rsa,用户名为当前登录用户)。
接着提示输入密钥密码(passphrase):
Enter passphrase (empty for no passphrase):
- 若设置密码:后续使用私钥时需输入该密码(安全性更高,但需记住密码);
- 若不设置密码:直接按回车(本文选择不设置,实现完全免密)。
最后确认密码(若设置了密码):
Enter same passphrase again:
完成后,客户端会在/home/用户名/.ssh/目录下生成两个文件:
id_rsa:私钥(务必保密,不要泄露);id_rsa.pub:公钥(需上传到服务端)。
将公钥上传至服务端
服务端需要客户端的公钥,才能验证其身份,上传公钥有两种常用方法:ssh-copy-id命令(推荐)或手动复制。
使用ssh-copy-id命令(最简单)
在客户端终端中,执行以下命令(将用户名替换为服务端的登录用户,服务端IP替换为目标IP):
ssh-copy-id 用户名@服务端IP
ssh-copy-id root@192.168.1.200
执行过程中,会提示输入服务端用户的密码(输入时不会显示字符,输入后按回车)。ssh-copy-id会自动:
- 在服务端创建
~/.ssh目录(若不存在); - 将客户端的公钥(
id_rsa.pub追加到服务端的~/.ssh/authorized_keys文件中; - 设置
~/.ssh目录权限为700,authorized_keys文件权限为600(避免权限错误导致登录失败)。
手动复制公钥(若ssh-copy-id不可用)
-
查看客户端公钥内容:
cat ~/.ssh/id_rsa.pub
输出类似:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... 用户名@客户端主机名 -
登录服务端并创建目录/文件:
先通过密码登录服务端:ssh 用户名@服务端IP
然后在服务端执行:
mkdir -p ~/.ssh # 创建.ssh目录(若不存在) chmod 700 ~/.ssh # 设置目录权限 touch ~/.ssh/authorized_keys # 创建授权文件 chmod 600 ~/.ssh/authorized_keys # 设置文件权限
-
粘贴公钥内容:
退出服务端登录(exit),回到客户端,将id_rsa.pub通过scp或其他方式复制到服务端,然后追加到authorized_keys文件中。scp ~/.ssh/id_rsa.pub 用户名@服务端IP:/tmp

