SSH 公私钥对使用指南

一、生成 SSH 公私钥对

可以使用 ssh-keygen 命令来生成 SSH 公私钥对,同时指定使用 RSA 算法。

 

bash

ssh-keygen -t rsa

 

  • -t rsa:表明使用 RSA 算法生成密钥对。
  • 执行该命令后,系统会提示你输入密钥保存的位置和密码。若直接回车,则会采用默认值。默认情况下,私钥会保存为 ~/.ssh/id_rsa,公钥会保存为 ~/.ssh/id_rsa.pub

二、SSH 服务配置

  1. 查看 SSH 服务配置
    可以使用以下命令查看 SSH 服务配置中关于公钥认证和密码认证的设置:

 

bash

grep -E '^PubkeyAuthentication|^PasswordAuthentication' /etc/ssh/sshd_config

 

  1. 配置公钥认证和密码认证
    要保证 SSH 服务允许公钥认证,若需要,也可开启密码认证作为备用方式。在 /etc/ssh/sshd_config 文件中进行如下设置:

 

plaintext

PubkeyAuthentication yes
PasswordAuthentication yes  # 可选,允许密码认证作为备用

 

设置完成后,重启 SSH 服务,使配置生效:

 

bash

sudo systemctl restart sshd

三、将公钥复制到目标主机

有两种方法可以将本地生成的公钥内容添加到目标主机的 ~/.ssh/authorized_keys 文件中,如此本地主机就能使用对应的私钥免密登录目标主机。

 

方法一:使用 ssh-copy-id 命令(前提是目标主机已开启 SSH 服务且允许密码登录)

 

bash

ssh-copy-id user@target_host

 

这里的 user 是目标主机的用户名,target_host 是目标主机的 IP 地址或者域名。

 

方法二:手动复制公钥内容

 

bash

cat ~/.ssh/id_rsa.pub | ssh user@target_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

 

该命令借助管道将本地公钥内容通过 SSH 传输到目标主机,并追加到 ~/.ssh/authorized_keys 文件中。

四、免密登录

  1. 直接使用私钥登录
    在本地主机上,使用 ssh 命令并指定私钥文件进行登录:

 

bash

ssh -i ~/.ssh/id_rsa user@target_host

 

  • -i:代表私钥的路径。
  • 后面依次为用户名和目标主机的 IP 地址或域名。

 

  1. 配置 SSH 配置文件(可选)
    可以在本地的 ~/.ssh/config 文件中为目标主机配置别名,以简化登录操作。

 

plaintext

Host target_alias
    HostName target_host
    User user
    IdentityFile ~/.ssh/id_rsa

 

  • target_alias:为目标主机设置的别名。
  • 配置完成后,只需使用以下命令即可登录目标主机:

 

bash

ssh target_alias

五、常见问题及解决办法

密钥认证和密码认证是两种不同的模式,所以即使之后目标用户修改了密码也不会影响密钥认证,但在以下情况下可能会出现认证失败的问题:

 

  1. SSH 配置改变:若目标机器将 PubkeyAuthentication 选项设置为 no,则会禁用公钥认证。需要检查并修改 /etc/ssh/sshd_config 文件,然后重启 SSH 服务。
  2. 权限问题~/.ssh 目录权限一般应为 700,~/.ssh/authorized_keys 文件权限一般应为 600。可以使用以下命令修改权限:

 

bash

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

      3 .公钥被修改或者删除:若公钥被修改或者删除,需要重新将本地公钥复制到目标主机的 ~/.ssh/authorized_keys 文件中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值