linux无密码ssh,scp,rsync

柔情只为你懂 2021-11-23 10:26 369阅读 0赞

维护中,常常遇到需要ssh,scp,或者rsync,每次都需要输入密码,非常麻烦。特别是在自动化shell脚本中,涉及到scp或者rsync的操作时,就需要无密码执行命令。以下来看一下,如何无密码ssh,scp。

现在有两台主机,主机A和主机B,在同一个网络中,且两台主机都有同一个用户root(也可以是同一个其他用户),下面为同一个用户root添加无密码ssh,scp。

1,在主机A生成密钥和公钥

  1. [root@ecs-7bc6-0001 ssh]# ssh-keygen -t rsa
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/root/.ssh/id_rsa): /home/work/docker/centos/ssh/id_rsa
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in /home/work/docker/centos/ssh/id_rsa.
  7. Your public key has been saved in /home/work/docker/centos/ssh/id_rsa.pub.
  8. The key fingerprint is:
  9. SHA256:S3zH48HfguyFctJutqXtP/+lIUUWLTmnCU0myllzCLE root@ecs-7bc6-0001.novalocal
  10. The key's randomart image is:
  11. +---[RSA 2048]----+
  12. | oo++=o |
  13. | . =o==.o|
  14. | E .o* |
  15. | . o oo |
  16. | S . * . |
  17. | . o = B . |
  18. | . o O * o|
  19. | *o* =.|
  20. | o=o+.B|
  21. +----[SHA256]----

生成过程中需要输入存储目录,如果不输入默认在执行命令用户根目录中的.ssh目录下,在生成目录下查看生成的密钥id_rsa和公钥id_rsa.pub

  1. [root@ecs-7bc6-0001 ssh]# ls
  2. id_rsa id_rsa.pub

内容分别是:

  1. [root@ecs-7bc6-0001 ssh]# cat id_rsa
  2. -----BEGIN RSA PRIVATE KEY-----
  3. MIIEowIBAAKCAQEAtMy5N9159+9cnaz8rbR1kx0xtKdAU702b/Lfz6pgUtzKF1le
  4. nD/2gQykUxpIIvcgGYZzVBPGxXzDDJCu1vmMtKbYvEz8iLY+x4BaQ1K+4Mpat1cG
  5. IIAMjmYx8IFvtfR+IqLrH7uWHCq283TlVDe2NvTrppyHzoNOsBlbMl7RTrJpdnMl
  6. i7H0zuYK+qdj6zFqNq056K1x0WwOWVTz5w4Hyp28g9tFq6Ce2H+9GJNRtkuGRGXF
  7. gI7XrkAirQ1QWLItymht1h8WdIw0K8qoZT09SrLWJQPLa5Miu7CVhwRsDTDgXbIY
  8. j7nfNZn2F7lPkb/AWK9woXQb5qtvf4Dg9eChBwIDAQABAoIBAQCqGIUU2ug561bN
  9. /QaIAeQvsOKnnEZ3weaqMeyAekE/E/uJNgo9pCusw5EBohNF2gu4F/b+ndB+0d7L
  10. Pn9PPt4yw1na5e8cS6EKnmXNOtbbs2TfYh8ginfFrL3FEHFh1RCqU24zn48dFs6i
  11. g1KSBgwG7iuZx2A5WO253VEgNXZjuv8FjoVCWR+VmU2cfouB5RM6DxHkGqyZ0nvb
  12. bSuYNb8KLyylVibY0IXBBhiIXsYXDNJji1A1XeqNQUHewDINTYJuUAr68nr0yr8W
  13. YbOQJte07dgdGi44A9e0QnzlE5txuV5RrEJlTbEMVO5XAFhgk+mG3YrSKGiKucvr
  14. dVtTiGERAoGBAOKNs/jf7iDEgUBW2j0tuTT+3HM8KqfJjGFjw5uc0BpCeIy7VpAK
  15. ikWOjZrPyHsjWKwCnXycxAOms9v2hJe3j1BilHdQA6XpaBbvwQHLgj9zda0Wn6hV
  16. 3aIZegeENKHnEP8tEuEZe+rAWgIHR+JZkv7YcI58t2kI0ZO2et2SbD85AoGBAMxM
  17. neWfWEAMO8gHcdLp3D/3jcNRfhUAW7bAAs56tPGnsPf6bjJSg2YVQv76Wffeobdq
  18. fnWBILRWJ4oyCxyLmPDL0ZUp4YlEfvkUDxcTH/93FJUqkL+9MTRJRKM/AmzggSkv
  19. e10jk0Xf4KIRDgJwRXW4M669IqkhLbBd4DKcE6I/AoGAKBNa97ZdAEzidEgo2NOi
  20. xH4k7vmArieX/o5QRtGpekux2Ws2N8q1hPJfmDgTRb0N7XeU9jsg7WhqvolQESp2
  21. XojhrG1qB8pPEGee47tlMeYxtcmfun5d81PAY13+lXkzZ4BIq6r/YZpfEabKD386
  22. 4nvVBU+IfjsCH7gS6ekB3vkCgYA9Suc8UtgZLxJoasNdccggcNbZOIPJLThW1biB
  23. 1hKfRZ40Z6/T7Sl64PoeoWGImgSOkKar/jefoxFtxqHKyJ7z71JLnCsMEb6+X6Q/
  24. Wf+Jl2JXdlPDErHGbAzppSfHHnvhrVsnkFrI5efw94jqdmCAdukajafucgPRG/j9
  25. dhH15QKBgAiN8f4AN1iUUisB9sCljR3Lebblc1300stkQH3vkIrxIfQ+vgRa9HaN
  26. Y90BKZ5REqF51ZWUxU7/tR8ZQEigamo4wQe/6Rji/dfBPlVY9JU3f8vLbJ+R0GQR
  27. fl1qk9hMvhw1syD1HX0bAbOA1nXjYHCswP5KYReMukVXRdR9B+wl
  28. -----END RSA PRIVATE KEY-----
  29. [root@ecs-7bc6-0001 ssh]# cat id_rsa.pub
  30. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0zLk33Xn371ydrPyttHWTHTG0p0BTvTZv8t/PqmBS3MoXWV6cP/aBDKRTGkgi9yAZhnNUE8bFfMMMkK7W+Yy0pti8TPyItj7HgFpDUr7gylq3VwYggAyOZjHwgW+19H4iousfu5YcKrbzdOVUN7Y29OumnIfOg06wGVsyXtFOsml2cyWLsfTO5gr6p2PrMWo2rTnorXHRbA5ZVPPnDgfKnbyD20WroJ7Yf70Yk1G2S4ZEZcWAjteuQCKtDVBYsi3KaG3WHxZ0jDQryqhlPT1KstYlA8trkyK7sJWHBGwNMOBdshiPud81mfYXuU+Rv8BYr3ChdBvmq29/gOD14KEH root@ecs-7bc6-0001.novalocal

2,保存密钥,添加公钥

把生成的密钥id_rsa复制到主机A的root用户根目录的.ssh/目录下。

把生成的公钥id_rsa.pub中的内容添加到主机B,相同用户根目录下.ssh目录下的authorized_keys文件中。

通过以上两步,主机B就可以无密码的访问主机A。

3,同样如果主机A需要无密码访问主机B,根据1,2两步。

在主机B上生成密钥和公钥,并把B的公钥添加到A的authorized_keys中,且把B的私钥存放在B的root用户根目录的.ssh目录下。

4,如果有多台机器,只需要保证本机的公钥添加到目标机器./ssh/authorized_keys中,目标机器就可以无密码访问本机。

5,多台机器时,有一个简单的方案。

生成一个密钥对,多台机器共用一个密钥和公钥,authorized_keys中添加多行公钥,每个公钥的最后一列修改IP或者主机名,标记这是登录某个主机时需要携带的公钥即可。如下:

  1. ssh-rsa {xxxxxxkeys} root@master2
  2. ssh-rsa {xxxxxsKeys} root@slave3
  3. ssh-rsa {xxxxxsKeys} root@slave4

(完)(^_^)

发表评论

表情:
评论列表 (有 0 条评论,369人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux密码切换root

    一般情况下, su root 会提示输入密码, 在脚本中要切换的时候很不方便, 如何避免输入密码呢? 方式1: 配置/etc/sudoers文件 ,文件尾追加以下一行

    相关 linux ssh密码登录

    使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id\_rsa.pub; 私钥文件:

    相关 SSH 密码登录 Linux

    SSH Key的知识 Linux系统有一个钥匙环(keyring)的管理程序.钥匙环受到用户登录密码的保护.当你登录Linux系统时,会自动解开钥匙环的密码,从而可访问钥