文档章节

SSH双向免密码登录细节

Iuranus
 Iuranus
发布于 2014/06/17 23:59
字数 806
阅读 2559
收藏 16

        在安装好SSH的机子上,一般配置SSH单向(例如只从A机免密码登录到B机)免密码登录步骤如下:

在A机上:

cd ~/.ssh
ssh-keygen -t rsa    # 在~/.ssh目录下生成公私钥对
cat id_rsa.pub >> authorized_keys    # 将公钥追加到A机的authorized_keys文件中,则A机可以免密码登录本机
scp ./rsa_id.pub destination.host:~/.ssh    # 将公钥发送到B机子~/.ssh目录下

在B机子上:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys    # 在~/.ssh目录下将公钥追加到authorized_keys文件中,至此,A机可以免密码登录B机(第一次登录时,需要输入B机子的登录密码)
chmod 600 authorized_keys    # 如果第二次登录时仍旧需要输入密码,请确认authorized_keys文件的权限

        上述是设置A机免密码登录B机,如果需要进一步配置B机免密码登录A机,则在B机~/.ssh目录下ssh-keygen -t rsa生成自己的公私钥对之后(因为之前已经将A机的公钥文件rsa_id.pub发送到了B机的~/.ssh目录下,此时会提示覆盖该文件,这个可以直接覆盖,因为A机公钥已存在于authorized_keys文件中),在发送给A机之前,最好生成一份B机公钥副本(cp rsa_id.pub rsa_id.pub.B),以免覆盖了A机下面已经存在的A机自己的公钥。A机在得到B机的公钥后,将B机公钥追加到authorized_keys文件中,B机即可免密码登录A机(第一次登录也是需要密码)。最后清理A机下B机的公钥文件,并清理B机上B机自己的公钥副本,不然会影响登录,时间一长也容易搞混。

        自己在实践过程中,正是因为直接将B机的公钥发送给A机从而覆盖了A机自己的公钥文件,导致A-B单向登录时还可以,一配置双向登录后,A-B单向登录也不行了(A机公钥已被替换)。(如果只是A/B两个自己,可以用scp命令直接将公钥复制到远程机子的authorized_keys文件中,但多机情况下该命令会将之前的内容直接覆盖,要是scp有文件追加功能就好了。

        出现这个情况的原因是自己实现对SSH登录原理不甚清楚,从而走了不少弯路。看来果真知其所以然,才能知其各种然。

        同样附上自己参考的几篇比较有用的博文:SSH原理Secure Shell(Wikipedia)SSH原理与运用(一):远程登录(主要参看评论)ssh配置authorized_keys后仍然需要输入密码的问题ssh 无密码验证 及 ssh localhost 仍然需要密码的解决方案SSH双向免密码登陆:::linux配置双机SSH信任


如果文章对你有用,请在收藏之余“顶/赞”一下以示鼓励吧 (/ω\)

© 著作权归作者所有

共有 人打赏支持
Iuranus
粉丝 11
博文 41
码字总数 22439
作品 0
高级程序员
linux ssh 免密码登录

linux ssh 免密码登录 hosta ssh 到hostb 免密码 将hosta的pub key 添加到hostb的authorized_keys中 a生成密钥 将公钥复制到hostb用户下的.ssh/authorized_keys中 略,可以通过scp 权限问题 ...

一群河马
2015/11/19
0
0
Linux SSH免密码登录与拷贝文件(SCP)

在工作当中经常会登录远程服务器安装软件、部署应用或者拷贝文件到远程服务器上,都会提示输入密码才能完成相关的操作。工作中如果要频繁登录服务器和拷贝文件的情况下,经常输入密码难免会觉...

voole
10/11
0
0
SSH 免密码工具--SSH-skip-pwd

ssh-skip-pwd是ssh免密码工具。 已测环境: OS: Centos6.X 编程语言: python2.6 + pip + pexpect + paramiko 安装前置条件: 1,确认python版本为2.6-2.x [非 python3] 2,安装 pexpect 、...

code_son
2016/10/17
564
0
大数据教程(1.8):Linux之SSH免密登录配置

在工作中,有很多时候,我们需要使用自动化脚本远程安装软件或者执行程序。此时必须要实现免密码登录才好做相应操作。 博主今天就详细的分享Linux之间的ssh免密码登录配置过程,帮助小白们理...

em_aaron
07/06
0
0
如何在多台服务器添加ssh的免密码登录

1、在多主机中分别以命名方式映射IP(以三台机为例) vim /etc/hosts xxx.xxx.xxx.xxx node1 xxx.xxx.xxx.xxx node2 xxx.xxx.xxx.xxx node3 在三台主机上都要进行以上操作。 然后分别在三台主机...

算法之名
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android WebView制作简易浏览器

最终效果 先创建一个WebView控件,其他的就是通过线性布局在上方加入网址输入框和两个按钮 <WebView android:id="@+id/act_webview_wv" android:layout_width="ma...

lanyu96
14分钟前
1
0
解决MacOS升级系统Sierra到Mojave后git报错

错误信息 升级MacOS Sierra到Mac Mojave后执行git命令报错: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/......

阿dai
14分钟前
1
0
兄弟连区块链教程以太源码分析CMD深入分析(一)

cmd包分析 cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如 geth包下面的: func init() { // Initialize the...

兄弟连区块链入门教程
16分钟前
1
0
Titan Framework MongoDB深入理解1

在TitanFrameWork框架中,已经集成了MongoDB的各个功能,现在我们对框架内部的一些重要类进行分析与解读。 MongoDBConverter 在Titan框架中,比较重要的一个接口就是MongoDBConverter,它是作...

云季科技
21分钟前
1
0
SpringBoot集成Quartz

SpringBoot集成Quartz 什么是Quartz Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smalle......

Grittan
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部