网上介绍的很多教程我试了很不好设置,很多不行了,现在自己亲自测试了在Ubuntu 16.04下配置SSH免密码登录实践过程,希望对你有用。
注意:红色字体是方法,一共两个步骤,蓝色字体为第二部的备用方法。
公钥和私钥
公共密钥身份验证比密码更安全的身份验证。 这是特别重要的,如果电脑在互联网上是可见的。
如果你不认为这很重要,试一试 日志记录 下周的登录尝试得到。
我的电脑——一个极为普通的桌面PC——有4000多尝试想我的密码和近2500磨合尝试仅在上周。
公共密钥身份验证,验证实体有一个公钥和一个私钥。 每个键是一个大量具有特殊的数学性质。
私钥保存在电脑上登录,而公钥存储在 . ssh / authorized_keys 文件在所有你想要的电脑登录。
当你登录到一台电脑,SSH服务器使用公钥来“锁定”消息,只能由您的私钥“解锁”——这意味着,即使是最足智多谋的攻击者不能窥探,或干扰您的会话。 作为一个额外的安全措施,大多数SSH程序将私钥存储在passphrase-protected格式,所以如果你的电脑被盗或破碎,你应该有足够的时间来禁用之前打破你的旧公钥密码和开始使用你的关键。 维基百科有 更详细的解释 键是如何工作的。
公共密钥身份验证比密码对大多数人来说是一个更好的解决方案。 事实上,如果你不介意离开私钥保护硬盘上,你甚至可以使用钥匙安全自动登录——作为一个网络备份的一部分,例如。
SSH程序生成公钥以不同的方式不同,但是他们都生成公钥类似的格式:
<ssh-rsa or ssh-dss> <really long string of nonsense> <username>@<host>
基于SSH登录
基于密钥的验证是最安全的几个身份验证模式使用OpenSSH,如普通密码和Kerberos票据。
基于密钥的验证密码身份验证有几个优点,例如键值更难以蛮力,比普通密码或者猜测,提供充足的密钥长度。 其他身份验证方法仅在非常特殊的情况下使用。
SSH可以使用RSA(Rivest-Shamir-Adleman)或“DSA(数字签名算法)的钥匙。
这两个被认为是最先进的算法,当SSH发明,但DSA已经被视为近年来更不安全。 RSA是唯一推荐选择新钥匙,所以本指南使用RSA密钥”和“SSH密钥”可以互换使用。
基于密钥的验证使用两个密钥,一个“公共”键,任何人都可以看到,和另一个“私人”键,只有老板是允许的。
安全通信使用的基于密钥的认证,需要创建一个密钥对,安全地存储私钥在电脑人想从登录,并存储公钥在电脑上一个想登录。
使用基于密钥登录使用ssh通常被认为是比使用普通安全密码登录。 导的这个部分将解释的过程中生成的一组公共/私有RSA密钥,并将它们用于登录到你的Ubuntu电脑通过OpenSSH(s)。
生成RSA密钥
第一步是创建一个RSA密钥用于身份验证。
这应该是在客户端完成的。
公共和私人SSH密钥创建您的命令行:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
系统将提示您为一个位置保存密钥,密钥和密码。
这个密码保护您的私钥存储在硬盘上的:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.
现在可以作为您的公钥 .
ssh / id_rsa . pub 在你的主文件夹。
恭喜你! 你现在有一串钥匙。 现在是时候让你的系统允许您登录
选择一个好的密码
你需要改变你所有的锁如果你的RSA密钥是偷来的。 否则小偷冒充你无论你验证的关键。
一个SSH密钥密码是一个次要的安全形式,给你一点时间当你的钥匙偷了。 如果你的RSA密钥 强大的密码 几个小时,它可能把你的攻击者猜测通过蛮力。
额外的时间应该能够登录到任何电脑上你有一个帐户,删除旧的关键 . ssh / authorized_keys 文件,并添加一个新密钥。
你的SSH密钥密码 只有 用来保护你的私钥小偷。
从来没有在互联网上传播,你的关键的力量与强度无关你的密码。
决定用密码保护您的关键包括x安全方便。 请注意,如果你保护你的钥匙密码,当你输入密码解锁,您的本地计算机的关键解锁通常会离开一段时间。
如果你多次使用的关键不注销你的本地帐户同时,你可能只需要输入一次密码。