#ssh远程双向无密码登陆
需求:在192.168.10.100执行ssh 192.168.20.205不需要输入密码直接跳转到205机器
#在192.168.10.100执行命令,我这里使用root用户

> ssh-keygen -t rsa -P ''       #直接回车回车,不输入任何内容(在192.168.10.100生成公钥和私钥放在/root/.ssh  目录下)
> ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.205    #把192.168.10.100的公钥复制到192.168.20.205,并追加到192.168.20.205服务器密钥信任列表(需要输入对应用户密码)

> ssh 192.168.20.205   #测试是不是可以不输入密码调到192.168.20.205服务器

#想在192.168.20.205免密码登陆192.168.10.100只需要把上述三个命令在192.168.20.205执行一次即可.

详细原理如下: 
#配置10.100
1.在客户端生成公钥和私钥
ssh-keygen -t rsa -P ''#直接回车,不输入任何内容
cd /root/.ssh#生成的公钥和私钥位置
2.把生成的公钥追加到自己的信任列表,自己可以ssh localhost不需要输入密码
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.修改ssh配置文件让其支持远程rsa验证登陆
vim /etc/ssh/sshd_config
放开注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
4.重启sshd服务
service sshd restart
5.本机测试是否支持无密码连接
ssh localhost#第一次输入yes
ssh localhost#第二次直接登陆
6.把自己的公钥给服务器
scp ~/.ssh/id_rsa.pub root@192.168.20.205:~/
 
7.登陆服务器192.168.20.205,把公钥追加到自己信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
8.服务器端重启sshd
service sshd restart
9.这时10.100(提供公钥方)可以无密码登陆20.205(信任列表有10.100公钥).
###单向无密码认证完成###
 
#在205服务器按照上述步骤做一次即可.
0.一样的步骤
生成公钥私钥--->公钥追加到自己的信任列表--->修改配置文件(放开注释)--->重启sshd--->本机测试
1.复制服务端公钥
scp ~/.ssh/id_rsa.pub root@192.168.10.100:~/ 
2.进入客户端,把服务器公钥追加到客户端信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
3.服务端直接登陆客户端
ssh 192.168.10.100
 
###修改ssh端口###
vim /etc/ssh/sshd_config
查找port,放开注释,可以添加一行(支持多端口),也可以直接改掉22端口.
 
 
如果遇到此问题:
 
cd /root/.ssh/
vim known_hosts     #删掉该主机对应的信任信息,因为之前配置过一次,但这一次重新生成了公私钥,而这边还是旧了,认证不了就报错.
 

18.ssh远程双向无密码登陆的更多相关文章

  1. ssh 信任关系无密码登陆,清除公钥,批量脚本

    实验机器: 主机a:192.168.2.128 主机b:192.168.2.130 实验目标: 手动建立a到b的信任关系,实现在主机a通过 ssh 192.168.2.130不用输入密码远程登陆b主机 ...

  2. Linux设置ssh无密码登陆

    最近在折腾Hadoop,要用到主机间无密码登陆,设置的时候遇到了一些问题,这里记录一下. 假设A需要无密码登陆B. 那么首先需要在A上使用ssh-keygen生成id_rsa.pub的公钥,生成时,一 ...

  3. ssh无密码登陆远程机,pssh轻批量工具

    #B(client)--------A(g_server)#A:   ssh-keygen -t rsa (g_server)#B:    scp -P 58422 root@g_server_ip: ...

  4. ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机

    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机 使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linu ...

  5. ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机【OK】

    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机[OK]     使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能 ...

  6. 解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop

    http://inuyasha1027.blog.51cto.com/4003695/1132896/ 主机ip:192.168.163.100(hostname: node0) ssh无密码登陆的远 ...

  7. 烂泥:学习ssh之ssh无密码登陆

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 最近一个月没有写过文章,主要是刚刚换的新工作.新公司服务器OS使用的是ubuntu server版,和以前熟悉的centos还是有很多不同的. 刚好这几天 ...

  8. [SSH服务]——一个SSH无密码登陆实验

    实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户us ...

  9. SSH 远程登陆

    2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...

随机推荐

  1. Android课程---首学开发

    新建一个Activity2类: package com.hanqi.test; import android.app.Activity; import android.os.Bundle; impor ...

  2. 浅谈Service

    一.生命周期: startService()方式启动,Service是通过接受Intent并且会经历onCreate()和onStart().当用户在发出意图使之销毁时会经历onDestroy():( ...

  3. Network | UDP checksum

    1. 校验和 ICMP,IP,UDP,TCP报头部分都有checksum(检验和)字段.IP 首部里的校验和只校验首部:ICMP.IGMP.TCP和UDP首部中的校验和校验首部和数据. UDP和TCP ...

  4. JS弹出遮罩层

    // create div var mask=document.createElement("div"); mask.id="mask"; mask.style ...

  5. php高并发状态下文件的读写

    php高并发状态下文件的读写   背景 1.对于PV不高或者说并发数不是很大的应用,不用考虑这些,一般的文件操作方法完全没有问题 2.如果并发高,在我们对文件进行读写操作时,很有可能多个进程对进一文件 ...

  6. mysql查询结果添加编号

    第一种方法: select   (@i:=@i+1)   as   i,table_name.*   from   table_name,(select   @i:=0)   as   it 第二种方 ...

  7. CGContextAddCurveToPoint 的深入理解

    CGContextAddCurveToPoint 这个函数看上去一般般,仔细琢磨发现不简单,为什么三个点就可以确定一条曲线呢? 网上查了查,小小研究了一下下. 1.关键知识 窃取自 (http://l ...

  8. 让ecshop用户名、手机号、email登陆方法

    让ecshop用户名.手机号.email登陆方法, 仅适用于没有做过任何平台整合的ECSHOP网站   修改文件:   1.includes/modules/integrates/ecshop.php ...

  9. JDBC连接mysql数据库,添加数据

    如下:其中添加/删除/修改只是sql字符串不同 //3.要执行的字符串 String sql="INSERT INTO t_student(NAME,age,email) VALUES('x ...

  10. android 消息机制

    一.Android应用程序的主线程主要用于更新UI界面,并且主线程不能做耗时操作,否则会引起ANR:这种情况下需要开一个子线程来进行耗时操作,动作完成之后,子线程发消息给主线程通知其更新UI显示,常见 ...