当前位置:   article > 正文

ssh远程如何使用密钥免密码登录(配置过程)_ssh密钥密码

ssh密钥密码

通常习惯在客户端的用户目录下的.ssh目录下使用命令ssh-keygen -t rsa生成公钥和私钥,在.ssh/目录下,会新生成两个文件:id_rsa.pub(公钥)和 id_rsa(私钥)。

        此时,客户端无需再进行任何配置,将id_rsa.pub存放到服务端。但是存放在什么位置呢?我这边是放到了服务端用户目录下的xx目录/.ssh目录下,并将id_rsa.pub(公钥)文件改名为authorized_keys(mv id_rsa.pub authorized_keys)。

        本博客主要阐述客户端和服务端都是用管理员(不是超级管理员)账号如何配置客户端文件、目录等,以及如何解决一些由于权限问题导致配置失败的问题。

         服务端配置如下:

  1. 首先查看当前用户,找到你当前登录的用户路径信息
  2. cat /etc/passwd
  3. 按照用户路径显示其详细信息,可能是个链接,指向一个新地址,
  4. 例如我查看是 /var/serives/homes,而homes -> /volume1/@fake_home_link,
  5. 因此我需要在/volume1/@fake_home_link下创建user/.ssh目录,然后将authorized_keys文件存放进去。
  6. cd /var/serives
  7. ls -l
  8. cd /volume1
  9. ls
  10. sudo mkdir -p @fake_home_link/user
  11. 创建完毕后给目录递归赋权限
  12. sudo chmod 755 -R \@fake_home_link/
  13. 设置user目录属于user用户
  14. cd \@fake_home_link
  15. sudo chown user user/
  16. 在user目录下创建.ssh目录
  17. cd user/
  18. mkdir .ssh
  19. ls -a
  20. 显示出.shh目录结构后,将authorized_keys文件存放到.ssh路径下,并设置authorized_keys属于kejia用户。
  21. cd .ssh
  22. mv id_rsa.pub authorized_keys
  23. ※注意!!! 设置authorized_keys的文件权限为只读(444或者400)大坑,否则会导致ssh密钥登录失败。
  24. chomd 444 authorized_keys
  25. 最后还需要修改一下服务端的ssh配置文件
  26. cd /etc/ssh
  27. sudo vim sshd_config
  28. PubkeyAuthentication yes前边注释#去掉,
  29. 然后将AuthorizedKeysFile 前面的注释#去掉 并将其后边改为.ssh/authorized_keys
  30. 重新启动ssh服务,并检查其状态
  31. sudo systemctl restart sshd
  32. sudo systemctl status sshd

配置完后,就可以在客户端使用密钥ssh服务器了,使用如下方法,还可以使用外部程序,控制服务端的重启、关机功能。(如果你是不知道超级管理员的账户密码,可以使用如下代码来使用管理员账号,通过一行命令完成且不需要手动输入密码,完成程序自动调用开关机功能。)

  1. ssh user@192.xx.xx.xx <<EOF
  2. echo "password" | sudo -S shutdown now
  3. EOF

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/583482
推荐阅读
相关标签
  

闽ICP备14008679号