Linux 下 的 ssh 免密登录
2022-06-10 10:39:10    291    0    0
admin

在/root/.ssh/目录下:

  1. [root@localhost .ssh]# tree -a
  2. .
  3. ├── authorized_keys
  4. ├── id_dsa
  5. ├── id_dsa.pub
  6. ├── id_rsa
  7. ├── id_rsa_2048_9417.pub
  8. ├── id_rsa.pub
  9. └── known_hosts
  • 若没有则创建 .ssh 文件夹,则创建并设置权限:chmod 700 ~/.ssh
  • .ssh 目录下生成公钥私钥:ssh-keygen -t rsa 其中 id_dsa,id_rsa 是私钥,id_rsa.pub,id_dsa.pub 是公钥
  • authorized_keys 文件存放其他主机的公钥,其他主机即可ssh登录该机,此文件的权限:chmod 644 ~/.ssh/authorized_keys
  • know_hosts 记录主机登陆过的其他主机的公钥信息

示例 A 和 B 免密登录 C

  • 分别在 A 和 B 下生成私钥密钥对,执行命令 ssh-keygen -t rsa,生成 id_rsaid_rsa.pub
  • 分别将生成的 A 的 id_rsa.pub 和 B 的 id_rsa.pub 内容追加到C主机的 authorized_keys 中,A 和 B 可以通过 ssh C 登录,exit 退出。
    ssh
    $ cat authorized_keys
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvqtPwT7kjfKzycR7r0FLe+UgxOSoeOW9EVb6eUb9MsO5IHvlVBKJK6F62dc5BNgemkwR8/UUDQ6tK4DMWipHI+t8naxgyXl9Kdc7oh78c/ADW1svBkrV3qOfxey/z+8ykN+kCgk7q65NytllpQH3FAi7b/0mO3cAEQWGSAC5wSG7XOamMmL4CLjhhLGwLwIAni50nOTBVVBjrXVn10EW4Bwcv+tH7KAIlZ+kZuatOUMIYyuBWleBokJzgQm2joQfe9RiO2Ayja6O4CpJSj0g3Efkb0bdxaOxYrgigp/0w400DQfjQil6I9lS1jQGazu8WIVJjSQU4HEFw5x4ocuzQQ== root@localhost.localdomainssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuiOuiFKim4VV74rkxYBqsmfEAbb5oMmsp/u36N/eO0o5sPEf/a6ZwiJAPT/XAAaw+ICVxZraJz+2lNyzAIvvBcqiL6gQev5MdOXtf+341iUhH1Ut8KWHxrGckbZc8+deDifwR6gUlv65wx+YWlAcp/emkanhiom0Y6+l7Ol3hb7+Ae8/uQow0dKof81xVDC3XZDH+qbWpGtBi9jlWSnwngedy0CPNL/b2orJ+XNEniZ3gCPif4uMSdiNmkXizz9Pqe00uXBAfxZYtMGfvW8nkwUKO+OkDqTAJnDHiCVJZV/nGB1AHIR6Lq6Yia3yu5zbCBJgX27aKRxHdvHfzDwmTw== root@localhost.localdomain

总结: 要想免密登录哪一台主机就需要自己生成一个公钥私钥对并将公钥内容追加到那一台主机的 authorized_keys 内容中

免密登录

将被<>括起来的部分修改为自己的真实参数

直接登录

指定私钥文件

  1. ssh -i ~/xxx.pem <Username>@<HostIP>

快捷登录

修改 .ssh/config:

  1. vi ~/.ssh/config

在此文件中指定私钥文件

  1. Host <HostAlias>
  2. HostName <HostIP>
  3. User <Username>
  4. IdentityFile ~/.ssh/myPrivateKey.pem

然后登录

  1. ssh <HostAlias>

Prev: Kubernetes

Next: Linux 下格式化和挂载硬盘

291
Table of content