shell ssh免秘钥制作

本文档展示了如何生成SSH密钥对,并将公钥复制到远程服务器,以便实现无密码登录。首先使用ssh-keygen创建RSA密钥对,然后通过ssh-copy-id将公钥安装到目标服务器,从而简化了SSH连接过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[root@node2 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
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:8J+Qb6RCwBdjPQmeoLaUYt9lK4Hc/RSzwVbu8hrkHfk root@node2
The key’s randomart image is:
±–[RSA 2048]----+
| . =o.=… |
| .+o+.++o* |
|…=ooo=+.+ . |
|.+…o+o+… . |
| … o…S+.+ |
| … o*+.o |
| . .o=o E |
| . .o |
| . |
±—[SHA256]-----+
[root@node2 ~]# ssh-copy-id root@192.168.0.109
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/root/.ssh/id_rsa.pub”
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed – if you are prompted now it is to install the new keys
root@192.168.0.109’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘root@192.168.0.109’”
and check to make sure that only the key(s) you wanted were added.

[root@node2 ~]# ssh root@192.168.0.109
Last login: Sat Oct 16 16:11:48 2021 from 192.168.0.129

### 如何在 Linux 中配置 SSH 密钥认证 #### 创建 SSH 密钥对 为了实现基于 SSH 密钥的身份验证,在本地机器上需要先生成一对密钥。这可以通过 `ssh-keygen` 工具完成,该工具能够生成、管理并转换用于 SSH 的认证密钥[^2]。 ```bash ssh-keygen -t rsa -b 4096 -C "[email protected]" ``` 上述命令将会创建一个带有电子邮件标签的新 RSA 类型的密钥对,并指定了更大的位数来增强安全性。执行此操作后,默认情况下会在用户的 `.ssh` 文件夹内找到名为 `id_rsa` 和 `id_rsa.pub` 的私钥与公钥文件。 #### 将公钥复制到远程主机 一旦拥有了有效的密钥对,下一步就是把生成好的公钥发送至目标服务器以便建立信任关系。可以利用 `ssh-copy-id` 实用程序简化这一过程: ```bash ssh-copy-id user@remote_host ``` 这条指令会自动处理将本地计算机上的公共部分追加到远端账户下的授权键列表中去,即位于 `/home/user/.ssh/authorized_keys` 文件里[^3]。 #### 修改服务器配置允许密钥登录 确保远程服务器已启用 PublicKey 认证机制。通常这意味着编辑 `/etc/ssh/sshd_config` 配置文档中的某些条目以激活必要的功能开关[^4]: ```bash sudo nano /etc/ssh/sshd_config ``` 查找下列两行并将它们前面可能存在的注释符号移除(如果存在),同时确认其值被设为 yes: - `PubkeyAuthentication yes` 更改完成后记得重启 SSH 守护进程使新的设定生效: 对于 Systemd 系统: ```bash sudo systemctl restart sshd ``` 而对于 SysVinit 或其他较老版本的操作系统,则应采用相应的服务控制方法重载守护程序。 #### 测试连接 最后一步是尝试不输入密码直接访问远程主机,以此检验整个设置是否成功。只需像平常一样运行常规的 SSH 登录命令即可: ```bash ssh user@remote_host ``` 如果一切正常的话,现在应该可以直接进入 shell 而无需再次提供口令了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值