前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设置ssh无密钥登录

设置ssh无密钥登录

作者头像
EltonZheng
发布2021-01-26 11:03:33
3.1K0
发布2021-01-26 11:03:33
举报

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

ssh有一套很有用的工具,其中的ssh-keygen可以用来生成private和public密钥.将生成的public密钥拷贝到远程机器后,可以使ssh到另外一台机器的登陆不用密码.具体方法如下.

1) 在本地机器中的~/.ssh/目录下执行下命令:

代码语言:javascript
复制
ssh-keygen -t rsa -C "your@email.com"

将生成两个文件,id_dsa和id_dsa.pub.

2) 将id_dsa.pub拷贝到远程机器,并且将id_dsa.pub的内容添加到~/.ssh/authorized_keys中.

代码语言:javascript
复制
cat id_dsa.pub >>authorized_keys

注意:目录.ssh和文件authorized_keys的权限必须是600.

完成这些工作后,用户从本地机器到远程机器的登录就不用密码了.

3) 关闭密码登录(可选) 如果不想再使用密码登录,可以在/etc/ssh/sshd_config中关闭 把文件中的#PasswordAuthentication yes 的#去掉,并将”yes”改成”no” 系统默认使用基于密码的验证方式,现改为基于密钥的验证方式,从而提高了系统的安全性

UPDATE: 13-01-15 注意:如果是CentOS 6.3系统,默认会把用户的目录进行加密,所以放在/home/user下的文件都是加密的,如果直接使用这种方式登录,会提示一下错误:

代码语言:javascript
复制
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

解决方法:

代码语言:javascript
复制
restorecon -R ~/.ssh

另外,如果你在Centos中建立了非root用户,则这个用户的.ssh目录的权限应该是700,authorized_keys文件的权限应该是644,可以用chmod去编辑对应的权限。

创建用户可以使用

代码语言:javascript
复制
useradd username
groupadd devs
usermod -G devs username

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档