配置 ssh 免密码登录

2016/12/9 posted in  Linux

配置 ssh 免密码登录很简单,记住几个命令就行了

生成公钥

ssh-keygen -t rsa

把公钥拷贝到目标机器上即可

ssh-copy-id -i /root/.ssh/id_rsa.pub master(主机名或IP或用户名@IP)
  • 1.会提示输入 yes
  • 2.然后输入目标机器的密码即可
  • 3.成功了,会有类似的提示
Now try logging into the machine, with "ssh '10.30.23.216'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

验证

ssh '10.30.23.216'

说明

在.ssh 目录下有这么几个文件

[root@bigdata .ssh]# ll
total 16
-rw------- 1 root root  399 Apr  6 18:24 authorized_keys
-rw------- 1 root root 1675 Apr  6 18:23 id_rsa
-rw-r--r-- 1 root root  399 Apr  6 18:23 id_rsa.pub
-rw-r--r-- 1 root root 2399 Apr 10 12:15 known_hosts
文件名 备注
authorized_keys 这个文件里存储了可以免密码登录到此台服务器的机器
id_rsa 私钥
id_rsa.pub 公钥
known_hosts 这个文件里存储了已经远程登录到此台服务器的机器,不代表可以免密码登录
  • 注意

因此,想要配置免密码登录,也就是把公钥拷贝到服务器的authorized_keys这个文件里就行了.

  • 举例

    • 1.A 机器想要免密码登录到 B 机器
    • 2.A机器生成公钥(没有公钥就执行:ssh-keygen -t rsa.有就不必要不执行了)
    • 3.把 A 机器的公钥拷贝到 B机器的authorized_keys文件里即可.
    • 4.ssh-copy-id -i /root/.ssh/id_rsa.pub master(主机名或IP)
    • 5.上面的命令就是第3步的实现
    • 6.输入 yes,输入远程机器的密码
    • 7.完成

注意

  1. 重新生成公钥后,id_rsa.pubid_rsa会变,但是authorized_keys文件不会变,这也意味着曾经授权免密登录的主机,仍然可以免密登录过来.
  2. 当主机名修改后,公钥可能就不好使了.
  3. 当用more命令去查看id_rsa.pub文件里面的公钥,然后复制的时候,可能会在换行的地方加上了换行符,然后配置免密的时候,可能就配置不成功了.所以查看文件再复制的时候,还是用cat命令比较好.