MarioBoy

使用SSH私钥免密码登录服务器
使用SSH私钥免密码登录服务器SSH提供两种验证方式基于口令的安全验证只要你知道自己帐号和口令,就可以登录到远程主...
扫描右侧二维码阅读全文
17
2018/07

使用SSH私钥免密码登录服务器

使用SSH私钥免密码登录服务器

SSH提供两种验证方式
  • 基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

  • 基于密钥的安全验证

这种方式可以避免第一种方式可能收到的攻击。

好了,看完了原理,让我们开始工作
为什么使用密钥登录

方便。以前我也是一直使用密码登录的,可是使用密码对与我这种懒人来说实在是一种折磨,于是我打算以后都使用密钥登录,不仅安全,而且省时(这才是重点)。

我也是第一次接触ssh的配置,所以,我只能先到网上搜了一些教程,然而,这些教程各种错误,真的是害人不浅。最后还是我自己看原理,一步步根据文档弄了出来

准备工作
  • Linux服务器
  • SSH客户端,比如Xshell,Tunnelier(我使用的是Tunnelier,个人感觉很好用,还能使用SFTP管理文件)
密钥
  • 密钥常是一对的,即公钥和私钥,将公钥添加到服务器上的某个账户,然后客户端连接的时候,使用私钥完成认证就可以登录
制作密钥对
  1. 登录服务器
  2. 生成密钥,执行以下命令:
    ssh-keygen
  3. 输入命令后一路空格
安装公钥到服务器
[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
设置权限
[root@host .ssh]$ chmod 600 authorized_keys  #不让其他用户写入 600 权限
[root@host .ssh]$ chmod 700 ~/.ssh           #读写执行的权限 700
配置ssh文件
  • ssh的文件都在/etc/ssh里面
[centos@localhost ~]$ cd /etc/ssh/
[centos@localhost ssh]$ ls
 ssh_config #是客户单配置的
 sshd_config #是服务端配置的
在sshd_config中使用RSA登录
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes # 允许root用户通过ssh登录
PasswordAuthentication no #不允许密码登录,只用使用私钥登录[一般我也用yes]
最后服务端重启,输入命令
service sshd restart
配置客户端g
  • 把服务端的.ssh目录下的id_rsa下载到客户端的.ssh目录下
  • 如果你是Tullnelier,则需要把下载的文件导入进Tunnlier里
  • Xshell等软件一般也可以导入密钥,或者将密钥放到某个文件夹里,具体位置请自己寻找。
    写于深夜。。。。。
Last modification:July 17th, 2018 at 11:25 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment