当前位置:   article > 正文

通过密钥 SSH 登录设置

source of key to be installed

理解:

  1. 1. 一直以来都是通过密码远程 ssh 登录到 linux服务器
  2. 2. 最近学习 Docker 总是看到大家都设置成密钥方式登录
  3. 3. 除了密码被破解的风险之外,到底还有哪些好处?
  4. 4. 看到有个文章写到:如果有员工离开,只需要删除他的公钥,这还有点儿用!
  5. 5. 但是密码还是要修改的吧!改密码和删除公钥,哪个更直接有效?

测试环境、测试目标

  1. linux 客户端(192.168.1.191): 环境: VisualBox虚拟机 ubuntu 18.04 Server
  2. Mac 客户端 (XXXXXXXXXXXXXX):
  3. Windows 客户端(192.168.1.174): 环境: VisualBox虚拟机 Win10
  4. 服务端(192.168.1.192): 环境: VisualBox虚拟机 ubuntu 18.04 Server
  5. 目的:使用密钥方式ssh登录到 192 服务器

方式说明:

  1. 1. 有些文章介绍的都是从服务端创建好私钥、公钥,然后下发给客户端,也是可以实现的
  2. 2. 我这里将私钥、公钥的生成交给客户端生成
  3. 3. 我认为客户端自己负责生成私钥、公钥,再将公钥交给管理员上传(或编辑),利于控制和管理

检测、安装 sshd

  1. ps -ef |grep sshd
  2. 一般安装过程最后会提示安装那些组件,如果忘记了选择 openssh-server
  3. 只好在这里重新安装一次
  4. sudo apt-get install openssh-server

服务端 sshd 配置修改

  1. 1. 修改 sshd_config
  2. sudo vim /etc/ssh/sshd_config 修改以下 4
  3. # by wzh 20190114 yes--no
  4. StrictModes no
  5. # by wzh 20190114
  6. PubkeyAuthentication yes
  7. # by wzh 20190114
  8. AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
  9. # by wzh 20190114 yes ---no ,can not use password to SSH
  10. PasswordAuthentication no
  11. ** 这一处最好等测试密钥方式正确之后,再单独修改!
  12. 2. 建立公钥key 保存文件
  13. sudo mkdir .ssh
  14. cd .ssh
  15. sudo touch authorized_keys
  16. sudo vim authorized_keys
  17. 加入 pubkey
  18. 3. 重启 SSHD
  19. sudo systemctl restart sshd

1、从 linux ssh 到 linux

  1. 1. 在 191 客户端 上建立密钥对
  2. ssh-keygen
  3. 简单起见,一路回车!passphrase 也是空着!
  4. 2. 确认公钥私钥文件是否生成
  5. ls
  6. authorized_keys id_rsa id_rsa.pub
  7. 3. 上传 191 自己的公钥到 192
  8. ssh-copy-id -i ~/.ssh/id_rsa.pub dhbm@192.168.1.192
  9. 或者直接在当前目录
  10. ssh-copy-id -i id_rsa.pub dhbm@192.168.1.192
  11. 返回结果如下:
  12. /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
  13. The authenticity of host '192.168.1.192 (192.168.1.192)' can't be established.
  14. ECDSA key fingerprint is SHA256:7CHsZoFn6YJ7RInEerqfKmKc0dw/TGpRK0Tca8piTCI.
  15. Are you sure you want to continue connecting (yes/no)?
  16. 4. 测试一下
  17. ssh dhbm@192.168.1.192
  18. 因为之前是密码方式,第一次可能还会要求输入密码
  19. Ok
  20. 5. 删除测试
  21. 在 192 服务器上 cd .ssh ,rm authorized_keys
  22. 这是我自己测试,只有一个用户,可以简单删除 authorized_keys 文件
  23. 如果多人操作,只能打开 authorized_keys 文件,删除对应的记录
  24. authorized_keys wen jian文件内容如下图:

  1. $ ll
  2. total 24
  3. drwx------ 2 dhbm dhbm 4096 Jan 11 17:15 ./
  4. drwxr-xr-x 15 dhbm dhbm 4096 Jan 11 17:15 ../
  5. -rw------- 1 dhbm dhbm 401 Jan 11 17:15 authorized_keys
  6. ...
  7. 再次 测试 191 ssh 到 192
  8. ssh dhbm@192.168.1.192
  9. dhbm@192.168.1.192's password:
  10. ** 回到了之前的密码方式
  11. ** 等确认一段时间之后,再来去掉密码方式登录
  12. 6. 重复以上 ssh-copy-id 再来!这次就不要再删除了!

2、从 Mac 客户端到 192 服务器

  1. 1. 和以上 Linux 操作一样的次序,在 Mac 上建立密钥对
  2. ssh-keygen
  3. 返回结果:
  4. ...
  5. Your identification has been saved in /Users/dhbm/.ssh/id_rsa.
  6. Your public key has been saved in /Users/dhbm/.ssh/id_rsa.pub.
  7. 1. 上传 Mac 的公钥到 192 服务器
  8. ssh-copy-id -i ~/.ssh/id_rsa.pub dhbm@192.168.1.192
  9. 3. ssh 测试
  10. ssh dhbm@192.168.1.192

3、从 Mac 到 192 上的 Docker (非 22 端口)

  1. 1. 按照网上搜索到的方法(直接 cd .ssh 目录下操作)
  2. ssh-copy-id -i id_rsa.pub "-p 10033 root@192.168.1.192"
  3. 返回错误:
  4. /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
  5. Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
  6. -f: force mode -- copy keys without trying to check if they are already installed
  7. -n: dry run -- no keys are actually copied
  8. -h|-?: print this help
  9. 2. 去掉引号
  10. ssh-copy-id -i ~/.ssh/id_rsa.pub -p 10033 root@192.168.1.192
  11. ok!

4、从 Windows putty 到 192 服务器

  1. 1. 下载 putty 和 putty gen
  2. 下载地址很多,我是从 CSDN 下载的
  3. https://download.csdn.net/download/baolang00/10529977
  4. 2. 首先打开 putty gen生成 公钥私钥
  5. ** 生成的时候非常慢,头几次不知道技巧的时候,每次都等待了将近 40 分钟!
  6. ** 技巧: 看到进度条,没事就在下面的空白处点鼠标!点鼠标!!点鼠标!

  1. 3. 保存私钥、key 和 公钥
  2. 1)、保存私钥 : 必须
  3. 2)、复制保存key:必须
  4. 3)、保存: 非必须

  1. 4. 将以上 key 内容发送给管理员,上传(直接编辑粘贴)到服务器
  2. ** 客户端保存之后文件夹内容如下

** 服务端加上公钥之后如下

  1. 5. 开始 putty SSH 连接
  2. 1)、设置登录账号

  1. 2)、加载自己的私钥

  1. 3)、保存本次会话(Session)

  1. ** 可以在测试成功之后,重新操作一次的时候保存
  2. ** 后续操作就可以直接加载(load)
  3. 4)、成功的话,就如下图,直接进入了服务器

5. 错误处理:总是看到 server refused our key

  1. 修改 192 服务端 sshd 配置(vim /etc/ssh/sshd_config)
  2. ** 之前都是 linux 之间操作,所以,都是严格模式 (StrictModes )
  3. 1)、#StrictModes yes 去掉注释,改成 StrictModes no
  4. 2)、#PubkeyAuthentication yes 去掉注释,改成 PubkeyAuthentication yes
  5. 3)、#AuthorizedKeysFile .ssh/authorized_keys 改成 AuthorizedKeysFile .ssh/authorized_keys
  6. 4)、保存退出,重启 sshd

转载于:https://my.oschina.net/u/1440971/blog/3000419

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

闽ICP备14008679号