2020-11-21 centos 下采用ssh key登录

1. ssh key的好处?

  • 如果采用传统密码登录的话,每次登录都会弹出类似这样的警告:

    There were 12345 failed login attempts since the last successful login.

  • 你可以用这条命令看看到底是哪些人曾经想登门拜访过:
grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr | more
  • 采用ssh key登录后,首先可以将这些人拒之门外。其次,省的每次都输入一次密码,更加方便。

2. 方法(以root用户为例)

 ssh-keygen -t rsa
  • 此命令在/root/.ssh生成了2个文件:id_rsa为私钥,id_rsa.pub为公钥,此处如果是普通用户的话,则目录是/home/用户名/.ssh
cp /root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys
chown -R 0700  ~/.ssh
chown -R 0644  ~/.ssh/authorized_keys
chown -R root:root /root
  • 修改ssh配置文件:
nano /etc/ssh/sshd_config

修改这几个地方:

RSAAuthentication yes
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes

3. Windows客户端配置PuTTY使用证书登录

  • PuTTY是一个很常见的SSH客户端,PuTTY Key Generator是其附属的专门用于生成密钥的工具(注意这是两个独立的软件)
  • 制作用于Putty的私钥
    1. 下载id_rsa到本地
    2. 下载PuTTY和PuTTY Key Generator:
      (下载地址:https://www.puttykey.com/download-putty/
    3. 点击File – Load private key(All Files .),导入id_rsa文件;
    4. 点击Save private key按钮,命名并生成ppk文件, 这个ppk文件就是用于PuTTY的私钥。
  • 设置PuTTY实现用证书登录
    1. Putty→Session:输入Host Name 或者 IP Address;
    2. Putty→Connection→Data:输入Auto-login username(自动登陆用户名);
    3. Putty→Connection→SSH→Auth:在Private key file for authentication选择私钥文件;
    4. Putty→Session:Saved Session:输入某个名称保存,以后直接双击该名称就可登录。

4. Windows 客户端Bitvise的设置

  • 与PuTTY不同,Bitvise的私钥生成并不像PuTTY那样需要一个独立的程序,设置上要简单一些。
  1. 打开Bitvise
  2. Host填服务器地址
  3. Username填root
  4. Inital method选publickey
  5. 点击Host key manager,点击More,选Remove All
  6. 点击Client key manager,点击Import按钮,文件类型选所有All Files类型,直接导入我们从服务器下载的id_rsa文件即可
  7. 回到主界面在Client key里选择:Profile 1
  8. 点击Log in按钮登陆即可。

5. 完全屏蔽密码登录

  • 当我们确认SSH KEY登录没有任何问题后,就可以将密码登录取消了:
  • 还是修改ssh配置文件:
nano /etc/ssh/sshd_config

修改这个地方:

PasswordAuthentication no

6. FAQ

  1. SSH完全无法使用了
    答:有可能是把
    PubkeyAuthentication no证书登录,和
    PasswordAuthentication no密码登录都设成了no,这样无论是采用公钥登录还是密码登录都会被拒绝,这就比较麻烦了,需要接上显示器键盘本地登录。(这也是为什么在SSH KEY登录没有完全测试成功之前,不能轻易将密码登录取消的原因)

  2. 所有设置都仔细检查,没有问题,但还是报错:Authentication failed. The key has been rejected。
    答:一般来说是目录权限问题,仔细检查chmod那几个命令是否成功执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容