ubuntu 22.04 使用ssh-keygen创建ssh互信账户

现有两台ubuntu 22.04服务器,ip分别为192.168.66.88192.168.88.66。需要将两台服务器创建新用户并将新用户做互信。

先做 192.168.66.88 对 192.168.88.66 的互信

创建账户

在服务器 192.168.88.66 上创建互信用户

# 如果此用户不想使用密码,直接一直回车就行,创建的用户是没法使用用户密码进行登陆的
adduser user1
# 切换到user1用户
su - user1

生成秘钥

# 此时会提示密钥保存路径,若无需修改,回车即可。接着会提示输入密码,按提示输入两次密码,若无需密码,执行两次回车
ssh-keygen -b 2048 -t rsa  
# 查看秘钥对
ll /home/user1/.ssh/    

在这里插入图片描述

  • 注意:如果是政府国企等主体,最好不要采用dsa加密协议,毕竟是NSA设计的,网络上流传说有后门。

复制公钥到远程服务器

  1. 通过ssh-copy-id将公钥复制到远程服务器,此命令会复制当前登录用户下的 ~/.ssh/id_rsa.pub 文件,并传送到远程服务器用户的~/.ssh/目录下,并将文件改名为authorized_keys。
ssh-copy-id root@192.168.66.88
  1. 使用SCP命令将公钥复制到远程服务器对应,然后手动放到远程服务器对应用户的~/.ssh/目录下,并改名为authorized_keys。

远程登录验证

ssh user1@192.168.88.66

192.168.66.88 对 192.168.88.66 的信任账户已经创建完毕,反方向的则重新做一遍即可。

serAdmin@MacBook-Pro ~ % ssh-keygen -R ssh-keygen: option requires an argument -- R usage: ssh-keygen [-q] [-a rounds] [-b bits] [-C comment] [-f output_keyfile] [-m format] [-N new_passphrase] [-O option] [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa] [-w provider] [-Z cipher] ssh-keygen -p [-a rounds] [-f keyfile] [-m format] [-N new_passphrase] [-P old_passphrase] [-Z cipher] ssh-keygen -i [-f input_keyfile] [-m key_format] ssh-keygen -e [-f input_keyfile] [-m key_format] ssh-keygen -y [-f input_keyfile] ssh-keygen -c [-a rounds] [-C comment] [-f keyfile] [-P passphrase] ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] ssh-keygen -B [-f input_keyfile] ssh-keygen -D pkcs11 ssh-keygen -F hostname [-lv] [-f known_hosts_file] ssh-keygen -H [-f known_hosts_file] ssh-keygen -K [-a rounds] [-w provider] ssh-keygen -R hostname [-f known_hosts_file] ssh-keygen -r hostname [-g] [-f input_keyfile] ssh-keygen -M generate [-O option] output_file ssh-keygen -M screen [-f input_file] [-O option] output_file ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider] [-n principals] [-O option] [-V validity_interval] [-z serial_number] file ... ssh-keygen -L [-f input_keyfile] ssh-keygen -A [-a rounds] [-f prefix_path] ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] file ... ssh-keygen -Q [-l] -f krl_file [file ...] ssh-keygen -Y find-principals -s signature_file -f allowed_signers_file ssh-keygen -Y match-principals -I signer_identity -f allowed_signers_file ssh-keygen -Y check-novalidate -n namespace -s signature_file ssh-keygen -Y sign -f key_file -n namespace file [-O option] ... ssh-keygen -Y verify -f allowed_signers_file -I signer_identity -n namespace -s signature_file [-r krl_file] [-O option] UserAdmin@MacBook-Pro ~ %
07-13
### 正确使用 `ssh-keygen -R` 命令从 `known_hosts` 中移除主机密钥 在 SSH 连接过程中,若远程主机的公钥发生变化,而本地 `~/.ssh/known_hosts` 文件中仍保留旧密钥,则会触发“Host key verification failed”错误。为了解决该问题,可以使用 `ssh-keygen -R` 命令清除目标主机的旧密钥记录。 #### 语法与用法 命令的基本格式如下: ```bash ssh-keygen -R hostname [-f known_hosts_file] ``` 其中: - `hostname` 是要删除的远程主机名或 IP 地址。 - 可选参数 `-f` 指定 `known_hosts` 文件的路径,默认为当前用户的 `~/.ssh/known_hosts` [^1]。 例如,若需删除 IP 地址为 `192.168.3.14` 的主机记录,可执行以下命令: ```bash ssh-keygen -R 192.168.3.14 ``` 此操作将从默认的 `known_hosts` 文件中删除所有与指定主机相关的密钥条目,并生成一个备份文件(如 `/Users/用户名/.ssh/known_hosts.old`)[^2]。 #### 特殊情况处理 如果目标主机配置了非标准端口(如 5520),则需要在 IP 地址后添加端口号并用方括号包裹: ```bash ssh-keygen -R "[192.168.1.10]:5520" -f /Users/m1/.ssh/known_hosts ``` 该命令将从指定的 `known_hosts` 文件中移除带有特定端口号的主机密钥记录 [^1]。 #### 验证操作结果 执行完上述命令后,可尝试重新连接目标主机: ```bash ssh username@192.168.3.14 ``` 此时系统会提示用户是否接受新的主机密钥,输入 `yes` 即可完成信任操作,并将新密钥写入 `known_hosts` 文件 [^3]。 #### 注意事项 - 删除密钥前,请确保了解目标主机的身份变更原因,以避免潜在的安全风险(如中间人攻击)。 - 若频繁出现密钥变更的情况,建议定期清理 `known_hosts` 文件或采用自动化脚本进行维护。 - 在多用户环境中,应确保每个用户的 `.ssh/known_hosts` 文件保持同步,防止因密钥不一致导致连接失败 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fire_in_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值