ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

[tip] ssh远程连接主机免密码登录

[tip] ssh远程连接主机免密码登录
  1. 指定ssh的key名称
ssh-keygen-ted25519-f~/.ssh/id_ed25519_server1 ssh-keygen-ted25519-f~/.ssh/id_ed25519_server2

这样你会得到:

~/.ssh/id_ed25519_server1 ~/.ssh/id_ed25519_server1.pub ~/.ssh/id_ed25519_server2 ~/.ssh/id_ed25519_server2.pub
  1. 复制公钥到被ssh连接的主机

1)Linux操作系统

ssh-copy-id-i~/.ssh/id_ed25519_server1.pub user@server ssh-copy-id-i~/.ssh/id_ed25519_server2.pub user@server

如果没有命令ssh-copy-id,则可以在远程主机上:

echo"公钥内容">>~/.ssh/authorized_keys

2)Windows操作系统
把公钥内容保存在如下路径中

# 管理员notepad C:\ProgramData\ssh\administrators_authorized_keys# 非管理员notepad"$env:USERPROFILE\.ssh\authorized_keys"

记得修改文件后缀名(删除默认的txt)

  1. 多个 key 怎么自动选择?
vim~/.ssh/config

写入:

Host server1 HostName1.2.3.4 User ubuntu IdentityFile ~/.ssh/id_ed25519_server1 Host server2 HostName5.6.7.8 User root IdentityFile ~/.ssh/id_ed25519_server2
  1. 使用时:
sshserver1sshserver2

【遇到的问题】
6. 配置了仍然不能免密登录

查看远程服务器ssh配置

sudocat/etc/ssh/sshd_config

发现,配置了不允许用key进行登录

... PubkeyAuthentication no ...

把这个改成yes之后,重启服务:

sudosystemctl restartssh

就可以了

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进