最近查看linux系统日志:/var/log/secure,发现服务器出现大量暴力破解登录记录,并且是不同的IP帐号在尝试破解,所以不好写iptables来禁掉IP登录(太多了);又由于公司预算,没有固定的外网IP登录服务器,所以不好写iptabls只允许某些IP访问。因此准备使用密钥认证方式来登陆服务器,也避免了不必要的麻烦操作。

配置SecureCRT使用SSH公钥方式登录Linux服务器_Linux

 

1.配置sshd只允许使用public_key登录

cd /etc/ssh/

①先进行备份,并创建普通用户

cp sshd_conf sshd.conf.bak

useradd chengzhi

②sshd_conf配置

主要修改如下几个内容:

PermitRootLogin no # 默认为注释,先配置为禁止root用户登陆,允许root登陆太危险了。

##RSAAuthentication yes   #启用 RSA 认证(我创建的是DSA,所以没有开启这个选项)

AuthorizedKeysFile .ssh/authorized_keys # 验证公钥的存放路径

PubkeyAuthentication yes # 默认为注释,启用公钥认证

PasswordAuthentication no # 禁止密码认证,默认是打开的。

 

保存后,重新启动ssh服务。

RedHat,CentOS: service sshd restart

 

2.公钥生成

方法一(服务器生成密钥对)

在服务器中执行:

ssh-keygen -t dsa

可以得到两个文件,id_dsa是私钥,id_dsa.pub是公钥

复制这两个文件到本地windows下

cat .ssh/id_dsa.pub > /home/chengzhi/.ssh/authorized_keys将公钥放入到验证文件

 

方法二(由SecureCRT生成密钥对,此方法我没测试过)

点击工具--创建公钥

配置SecureCRT使用SSH公钥方式登录Linux服务器_密钥登录_02


配置SecureCRT使用SSH公钥方式登录Linux服务器_密钥登录_03


配置SecureCRT使用SSH公钥方式登录Linux服务器_CRT_04

如果不填写就是不加密密钥,填写就是加密密钥

配置SecureCRT使用SSH公钥方式登录Linux服务器_Linux_05

 

密钥长度,一般默认就行

配置SecureCRT使用SSH公钥方式登录Linux服务器_密钥登录_06

 

开始生成密钥中

配置SecureCRT使用SSH公钥方式登录Linux服务器_CRT_07


复制Identity.pub文件到服务器,放在home目录的.ssh子目录下,并执行

ssh-keygen -X -f Identity.pub > authorized_keys

 

3.配置SecureCRT使用公钥认证

打开会话选项

配置SecureCRT使用SSH公钥方式登录Linux服务器_Linux_08


配置SecureCRT使用SSH公钥方式登录Linux服务器_Linux_09

 

4.测试

重新用SecureCRT连接一下试试,能够直接登录就是成功了。