- 指定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- 复制公钥到被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_keys2)Windows操作系统
把公钥内容保存在如下路径中
# 管理员notepad C:\ProgramData\ssh\administrators_authorized_keys# 非管理员notepad"$env:USERPROFILE\.ssh\authorized_keys"记得修改文件后缀名(删除默认的txt)
- 多个 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- 使用时:
sshserver1sshserver2【遇到的问题】
6. 配置了仍然不能免密登录
查看远程服务器ssh配置
sudocat/etc/ssh/sshd_config发现,配置了不允许用key进行登录
... PubkeyAuthentication no ...把这个改成yes之后,重启服务:
sudosystemctl restartssh就可以了