问题导读 1.如何生成密钥对? 2.ssh localhost不成功,可能原因是什么? 3.ssh localhost警告的含义是什么? 在当前机器生成密钥对
[Bash shell] 纯文本查看 复制代码
?
ssh-keygen –t rsa –P ''
确认一路回车,命令默认会在用户主目录下生成.ssh目录,你们有两 密钥对文件:id_rsa和id_rsa.pub
[Bash shell] 纯文本查看 复制代码
?
[master@hadoop ~]$ ll .ssh/
-rw-------. 1 master master 1675 Jun 3 00:28 id_rsa
-rw-r--r--. 1 master master 402 Jun 3 00:28 id_rsa.pub
接着在master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
[Bash shell] 纯文本查看 复制代码
?
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
非root用户则需要授权
[Bash shell] 纯文本查看 复制代码
?
chmod 600 ~/.ssh/authorized_keys
服务器修改SSH配置文件"/etc/ssh/sshd_config",修改如下内容(去掉前面的注释)
[Bash shell] 纯文本查看 复制代码
?
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
这里需要通过文本编辑器的查找命令,如果使用vi编辑器,则使用/然后黏贴查找的内容,例如查找RSAAuthentication yes,则如下图
如果还看不懂,则看下vi编辑器的查找功能: linux之vi编辑器 http://www.aboutyun.com/forum.php?mod=viewthread&tid=6450 最后重启ssh服务
[Bash shell] 纯文本查看 复制代码
?
service sshd restart
使用上面命令系统可能提示 Redirecting to /bin/systemctl restart sshd.service 则我们在输入
[Bash shell] 纯文本查看 复制代码
?
/bin/systemctl restart sshd.service
重启成功。 然后ssh localhost 提示
[Bash shell] 纯文本查看 复制代码
?
The authenticity of host 'localhost (::1%1)' can't be established.
ECDSA key fingerprint is 7c:6a:0f:96:21:56:c5:f2:85:59:df:fe:1f:8b:f0:d3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Mon Apr 11 18:39:02 2016 from 10.0.0.1
这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗? 继续,会将localhost加入known hosts中,后面就不会再出现这种情况了。