ssh 免密通道登录及常见问题

创建密钥对

1
2
# 这条命令一路回车即可
ssh-keygen
1
2
3
4
5
# 生成如下2个文件
tree .ssh
.ssh
├── id_rsa
└── id_rsa.pub

将公钥传输到待登录的目标机器

1
2
# 根据提示输入密码即可
ssh-copy-id root@10.10.10.12

使用 -i 指定私钥位置,使用 -p 指定ssh的端口

1
ssh-copy-id -i .ssh/id_rsa root@10.10.10.12 -p 22

如果公钥丢失,可以从私钥中导出,(私钥中能导处公钥,公钥中不能导出私钥)

1
2
3
[root@host-10-11 ~]# ssh-keygen -y -f .ssh/id_rsa
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvd/MFEXp1amhEV59QnrEvdwuvDyQPW......
# 导出的pub没有最后的Comment

远程机器会生成authorized_keys文件

文件权限非常重要,错误的权限会导致免密失效

1
2
3
4
[root@host-10-11 ~]# tree -a -C -p  /root
/root
├── [drwx------] .ssh
│   └── [-rw-------] authorized_keys

手工拷贝pub文件

由于直接编辑容易出错,建议使用如下命令

1
2
3
4
5
# 将pub文件进行base64编码
[root@host-10-11 ~]# base64 .ssh/id_rsa.pub
c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDdmQvTUZFWHAxYW1oRVY1OVFu
ckV2ZHd1dkR5UVBXMnd2e......
......
1
2
3
4
5
6
7
8
9
10
# 目标机器创建文件
[root@host-10-12 ~]# cat <<EOF |base64 -d >> .ssh/authorized_keys
c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDdmQvTUZFWHAxYW1oRVY1OVFu
ckV2ZHd1dkR5UVBXMnd2e......
......
EOF

# 修改权限
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

使用ssh连接目标主机

使用 -i 指定私钥位置,使用 -p 指定ssh的端口,示例如下

1
2
3
[root@host-10-11 ~]# ssh -i .ssh/id_rsa root@10.10.10.12 -p 22
Last login: Mon May 24 15:56:36 2021 from 10.10.10.11
[root@host-10-12 ~]#
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2024 Outsrkem
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信