Fedora 10系统配置SSH免密登录教程

admin
本教程介绍在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免密登录的配置步骤。

环境准备

在配置前,需确保以下条件满足:

  1. 两台Fedora 10系统:一台作为客户端(本地机器,用于发起登录),一台作为服务端(远程机器,用于被登录)。
  2. 网络互通:两台系统能通过IP地址互相ping通(可通过ping 对方IP测试)。
  3. SSH服务已安装:服务端需安装openssh-server,客户端需安装openssh-clients(Fedora 10默认可能未安装,可通过yum命令安装)。

检查并安装SSH服务

服务端(远程机器)安装SSH服务:

yum install openssh-server -y

安装完成后,启动SSH服务并设置开机自启:

Fedora 10系统配置SSH免密登录教程

service sshd start       # 启动SSH服务
chkconfig sshd on        # 设置开机自启

客户端(本地机器)安装SSH客户端:

yum install openssh-clients -y

获取双方IP地址

  • 客户端IP:执行ifconfig命令,查看eth0eth1中的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会自动:

  1. 在服务端创建~/.ssh目录(若不存在);
  2. 将客户端的公钥(id_rsa.pub追加到服务端的~/.ssh/authorized_keys文件中;
  3. 设置~/.ssh目录权限为700,authorized_keys文件权限为600(避免权限错误导致登录失败)。

手动复制公钥(若ssh-copy-id不可用)

  1. 查看客户端公钥内容

    cat ~/.ssh/id_rsa.pub

    输出类似:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... 用户名@客户端主机名

  2. 登录服务端并创建目录/文件
    先通过密码登录服务端:

    ssh 用户名@服务端IP

    然后在服务端执行:

    mkdir -p ~/.ssh       # 创建.ssh目录(若不存在)
    chmod 700 ~/.ssh      # 设置目录权限
    touch ~/.ssh/authorized_keys  # 创建授权文件
    chmod 600 ~/.ssh/authorized_keys  # 设置文件权限
  3. 粘贴公钥内容
    退出服务端登录(exit),回到客户端,将id_rsa.pub通过scp或其他方式复制到服务端,然后追加到authorized_keys文件中。

    scp ~/.ssh/id_rsa.pub 用户名@服务端IP:/tmp
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码