ubuntu设置 SSH 通过密钥登录

需求的产生

将ssh服务暴露于外网的时候,经常会遭到一些“有心”人的撞库操作,可以通过查看分析/var/log/auth.log 日志
cat /var/log/auth.log
May 16 08:41:43 user sshd[233979]: Invalid user xbmc from 127.0.0.1
May 16 08:41:43 user sshd[233979]: input_userauth_request: invalid user xbmc [preauth]
	

可以看到有xbmc的用户尝试登录失败。
每天面对如此多的尝试登录,看日志简直就像是苍蝇一样,烦的要命。有没有一劳永逸的方法解决这个问题呢?
有!
关闭用户名密码登录,开启秘钥登录。意思就是把密码锁换成了钥匙锁。
有人要敲门,有钥匙吗?
没有,只有密码!
什么?没有钥匙?滚粗!

生成秘钥

为了使用秘钥,我们必须自己生成一对秘钥,关于公钥和私钥的具体原理我在这里不在赘述,网上可以查到大量的文章。
生成秘钥可以按照以下步骤
在服务器上运行

user@host :~$  ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):   	# 直接回车确认路径及文件按名字,也可以自己起名字
Enter passphrase (empty for no passphrase): 						#输入密钥锁码,或直接按 Enter 留空秘钥密码锁,这个密码是打开秘钥使用的,在此可以直接回车
Enter same passphrase again:  										#再输入一遍密钥锁码
Your identification has been saved in /home/user/.ssh/id_rsa. 		# 私钥生成
Your public key has been saved in /home/user/.ssh/id_rsa.pub. 		#公钥生成
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 


现在,在 user 用户的home目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥
到此,秘钥就生成完毕了

服务器上安装秘钥

输入一下命令

cd /home/user/.ssh  #进入秘钥所在 的目录
cat id_rsa.pub >> authorized_keys #将公钥转换成认证用

chmod 600 authorized_keys 	#修改权限满足认证要求
chmod 700 ~/.ssh			#修改文件夹权限满足认证要求

关闭密码登录并开启ssh秘钥登录

编辑 /etc/ssh/sshd_config 文件
确保秘钥认证的2个配置是yes状态

RSAAuthentication yes
PubkeyAuthentication yes

关闭密码登录

PasswordAuthentication no

重启ssh服务

sudo  service sshd restart

使用秘钥登录

将/home/user/.ssh/id_rsa 私钥下载到client的保存,注意,私钥的权限普通用户不能读写,需要修改权限或者提权才能复制。

使用SecureCRT
新建ssh连接
选择公钥,选择属性
选择公钥,选择属性

点击使用会话公钥设置,点击路径选择按钮,选择从服务器下载下来的秘钥id_rsa
点击使用会话公钥设置,点击路径选择按钮,选择从服务器下载下来的秘钥id_rsa
点击确定按钮

回到快速连接界面,记得把密码选项取消,然后点击连接就可以登录了
在这里插入图片描述

这样,就可以直接连接了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值