侧边栏壁纸
博主头像
大数互联博主等级

HI,你好

  • 累计撰写 58 篇文章
  • 累计创建 55 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

linux ssh密钥登录

大数互联
2024-12-04 / 0 评论 / 0 点赞 / 18 阅读 / 744 字

在 Linux 系统中使用 SSH 密钥进行登录,可以让你免密登录到远程服务器,增加安全性。下面是配置 SSH 密钥登录的基本步骤:

1. 生成 SSH 密钥对

在ssh客户端,如果你还没有 SSH 密钥,可以使用 ssh-keygen 命令来生成一对公私钥。打开终端,执行以下命令:

ssh-keygen -t rsa -b 4096
-t rsa:指定密钥类型为 RSA。
-b 4096:指定密钥长度为 4096 位,可以提高安全性。

命令执行后,你将被提示输入保存路径(默认为 ~/.ssh/id_rsa)和设置一个密码(可以选择为空)。如果你选择不设置密码,可以直接按回车。

2. 将公钥复制到目标服务器

生成密钥对后,你需要将公钥(通常是 ~/.ssh/id_rsa.pub)复制到你希望 SSH 登录的远程服务器上。你可以使用 ssh-copy-id 命令来自动化这一过程:

ssh-copy-id user@remote_host

user:远程服务器的用户名。
remote_host:远程服务器的 IP 地址或域名。
执行后,你会被要求输入远程服务器的密码。该命令会将你的公钥添加到远程服务器上的 ~/.ssh/authorized_keys 文件中。

如果你无法使用 ssh-copy-id,也可以手动将公钥内容添加到远程服务器的 ~/.ssh/authorized_keys 文件中:

查看公钥内容:

cat ~/.ssh/id_rsa.pub

在远程服务器上,手动将公钥添加到 ~/.ssh/authorized_keys 文件:

ssh user@remote_host
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

将 “your_public_key” 替换为你本地 id_rsa.pub 文件中的内容。

3. 修改 SSH 配置(可选)

确保远程服务器允许使用密钥认证。编辑远程服务器上的 SSH 配置文件 /etc/ssh/sshd_config,确保以下配置项被设置:

PubkeyAuthentication yes
PasswordAuthentication no
PubkeyAuthentication yes:允许公钥认证。
PasswordAuthentication no:禁止使用密码认证(提高安全性)。

4 授权

在ssh服务器与客户端分别执行
服务端执行

chmod 700 -R .ssh
chmod 700  .ssh/authorized_keys

客户端执行

chmod 700 -R .ssh
chmod 700  .ssh/authorized_keys
chmod 700  .ssh/id_rsa

编辑完后,重启 SSH 服务:

sudo systemctl restart sshd

5. 使用 SSH 密钥登录

现在,你应该能够使用 SSH 密钥无密码登录到远程服务器了:

ssh user@remote_host

6. (可选)配置 SSH Agent

如果你设置了密钥密码,你可以使用 SSH Agent 来缓存密码,避免每次连接时都输入。

启动 SSH Agent:

eval $(ssh-agent -s)

添加密钥:

ssh-add ~/.ssh/id_rsa

这样,你就可以在每次连接时避免输入密码。

0

评论区