coding……
但行好事 莫问前程

服务器配置ssh免密登陆

之前为了测试方便,买了个国内的低配VPS用于部署java测试,配置为1核2G、2M带宽上线、20GSSD,虽然是个乞丐版的配置,但是部署一下几个常用服务端程序还是差不多够了。然后当天,我一心欢喜的装上JDK、mysql、zookeeper等程序,但是之后一个礼拜不到,我发现我的VPS越来越卡,ssh连接很大概率被拒绝,连上去一个ls命令,都要接近五秒才能响应,有时候直接卡死了,但是自己也就装了这了了几个程序,不至于把服务器搞成这个样子。然后我使用ifconfig命令看了一下,然后发现短短两天的时间,服务器接受数据达到84G、发送数据达到6G,考虑到我这个乞丐版VPS的限宽因素,相当于我的VPS一直在接受发送数据。这时候我意识到,应该是服务器被黑了,然后top命令看了一下,有几个同名进程还在运行,叫gpg-agentd。后来看了一下内容,确定是被黑了(其实我之前试过杀进程 + 重启服务器),这玩意还带自动重启的,后来实在没辙了选择了重装系统加一些ssh的安全维护,主要是修改ssh端口(22端口很容易就被暴力扫描了) + 免密ssh登陆(使用公钥验证)。本篇文章,我就先介绍一下服务器ssh端口修改方法,及免密登陆配置,之后会用几片文章介绍一下服务器的其他常用软件安装配置。

1. 修改ssh端口号

ssh的默认端口是22,如果使用默认端口的话,很容易被暴力扫描,我这次VPS被黑就是因为这个原因,所以建议拿到服务器之后,第一时间修改一下ssh端口,方法如下:

# vi打开ssh配置文件
vi /etc/ssh/sshd_config

# 找到端口配置那一行
Port 22

# 将端口修改为自己想要修改的端口,注意不要占用常用端口,比如80、8080、443、3306、2181这种
Port ****

# wq保存

# 重启ssh服务
service ssh restart

2. ssh免密登陆配置

一般的密码方式登录容易被密码暴力破解,所以可以通过密钥登录这种方式来更好地保证安全。密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

2.1 制作密钥对

首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令,中间所有的提示都可以直接按Enter:

[root@host ~]$ ssh-keygen  <== 建立密钥对

现在,在 root 目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。

2.2 安装公钥

将需要访问服务器的主机公钥复制到到服务器,如下:

[root@host ~]$ cd .ssh
将公钥复制到.ssh目录下的authorized_keys文件中,如果不存在该文件,则新建一个

修改文件权限
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh

2.3 ssh设置,打开密钥登录功能

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

# 有了证书登录了,就禁用密码登录。
PasswordAuthentication no

2.4 重启sshd服务

service sshd restart

2.5 密钥登陆服务器

ssh 用户名@服务器ip -p 端口

如果是SecureCrt用户,则需要如下操作:

赞(0) 打赏
Zhuoli's Blog » 服务器配置ssh免密登陆
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址