Linux设置ssh无密码登录

SSH简介

SSH是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下SSH链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和SSH认证,同时可以实现跨账号间的无密码登录。


公钥认证的基本思想

对信息的加密和解密采用不同的key,这对key分别称作private key和public key,其中,public key存放在欲登录的服务器上,而private key为特定的客户机所持有。

当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public key加密的随机数据给客户机,这个数据只能通过private key解密,客户机将解密后的信息发还给服务器,服务器验证正确后即确认客户机是可信任的,从而建立起一条安全的信息通道。

通过这种方式,客户机不需要向外发送自己的身份标志“private key”即可达到校验的目的,并且private key是不能通过public key反向推断出来的。这避免了网络窃听可能造成的密码泄露。客户机需要小心的保存自己的private key,以免被其他人窃取,一旦这样的事情发生,就需要各服务器更换受信的public key列表。


使用ssh-keygen生成公钥

在特定的客户机上执行ssh-keygen,期间会提示输入密码,为了使用无密码登录,一直按回车即可。最后会在.ssh文件夹下生成id_rsa和id_rsa.pub文件,一个是私钥,另一个是公钥。

将生成的公钥文件id_rsa.pub的内容追加到欲登录的服务器的.ssh/authorized_keys中

设置authorized_keys文件权限:chmod 600 authorized_keys

设置.ssh文件夹权限:chmod 700 -R .ssh

此时,就可以在客户机上使用ssh直接无密码登录到欲登录的服务器上。


注意

1、如果要使用账号A进行无密码登录,只能在账号A下生成公钥和私钥。同时,如果想使用账号B登录到欲登录的服务器上,只能把公钥放在账号B下的.ssh/authorized_keys才能生效;

2、文件和目录的权限千万别设置成chmod 777。这个权限太大,不安全,数字签名也不支持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,805评论 19 139
  • SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet...
    StarShift阅读 7,355评论 0 7
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,708评论 0 20
  • 不晓得你们是否有喜欢玩斗地主的游戏,包括三个人坐下来打扑克牌或是对着电脑玩的都能算。我是喜欢这项活动的,常常跟老爷...
    勺子yy阅读 3,682评论 5 3
  • 1. “必须生,一个孩子以后长大多孤单的。”婆婆坐在沙发上微怒。 “孩子,我们想再想想,经济上也不是很宽裕。”苏月...
    九仙月阅读 4,477评论 0 1

友情链接更多精彩内容