场景:服务器B (192.168.1.101)免密登录A(192.168.1.100)服务器

1、登录服务器B

  ①生产公钥

ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

注意:1、在第二步的时候千万不要改名,采坑的教训;2、普通用户(非root),先切换到用以登录的用户

  ②上传公钥到服务器A

cd .ssh
scp id_rsa.pub root@192.168.100.100:/root

2、登录服务器A(被免费登录服务器)

cd /root/.ssh
cat ../id_rsa.pub >> authorized_keys

若为普通账号(非root),则目录为 /home/用户名/.ssh/authorized_keys,不存在目录或文件就先创建

3、免密登录多台服务器

  在执行ssh-keygen -t rsa的时候如果不输入文件名,会替换掉id_rsa文件,即上一次通过该文件设置的密码登录将失效,要支持免密登录多台服务器需要生成秘钥的的时候指定新的文件名

  然后在B服务器.ssh目录编辑文件:config,该文件没有扩展名,通过该文件来指定秘钥,如下

  

Host 172.16.4.220
HostName 172.16.4.220
IdentityFile ~/.ssh/id_rsa_robot
User robot

  host和hotsname都指定主机域名或ip地址

  IdentityFile  指定密钥文件

  User 指定登录的账号

4、如果ssh免密登录失败可以增加 -vvv参数查看登录日志

ssh 客户端日志:ssh  user@ip -vvv

新启动一个带debug的ssh服务端:通过执行 /usr/sbin/sshd -d -p 2222 (在2222端口启动一个带debug输出的sshd,注意防火墙问题)

5、其它问题

Bad owner or permissions on .ssh/config的解决
当为本机配一个固定用户名远程登录某主机时,配置了一个config文件,但是在执行ssh免密码登录时报如下的错误:Bad owner or permissions on .ssh/config的解决。

经过查找资料发下解决办法如下:

sudo chmod 600 config

Authentication refused: bad ownership or modes错误解决方法

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者。
rsa_id.pub 及authorized_keys权限一般为
rsa_id权限必须为

解决方法
检测目录权限,把不符合要求的按要求设置权限即可。

ssh 制作免密登录(免密登录多台服务器)的更多相关文章

  1. ssh 如何通过外网访问内网多台服务器

    本帖子未验证: 我看到一个论坛,坛友发的一个问题 http://bbs.51cto.com/thread-934340-1.html 解决方法,我自己开了这个帖子写在这里. 首先你需要一个软件“Sec ...

  2. 【Linux】两台服务器ssh免密登录

    背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备:  服务器A  linux   ip: 192.168.1.1 服务器B  linux  ip: 192.168.1. ...

  3. 多台服务器-SSH免密登录设置

    在4台服务器-SSH免密登录设置,如以下4台服务器 master1 node001 node002 node003 我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是 ...

  4. SSH远程登录:两台或多台服务器之间免密登录设置

    有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25.让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh loc ...

  5. 【原】linux两台服务器之间免密登录方法

    搭建集群机器192.168.0.100和192.168.0.200里,需要两台机器中间相互拷贝文件: 方式一:下载192.168.0.100机器文件到本地,再将本地文件拷贝到B机器 方式二:192.1 ...

  6. SSH配置—Linux下实现免密码登录

    首先,假设我们有两台服务器,服务器名称分别是 master 和 slave1,我们现在需要做的就是在服务器 master 上面登录 服务器 slave1 不需要输入密码就可以登录成功,如下图所示. 下 ...

  7. java:Linux(简单命令,远程ssh使用hostname访问,.免密钥登录配置)

    1.临时关闭防火墙: service  iptables  stop 临时开启防火墙: service  iptables  start 查看防火墙状态: service  iptables  sta ...

  8. 增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击

    VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门 ...

  9. linux下开启SSH,并且允许root用户远程登录,允许无密码登录

    参考:http://blog.csdn.net/jia0511/article/details/8237698 1. 允许root用户远程登录 修改ssh服务配置文件 sudo vi /etc/ssh ...

随机推荐

  1. OPENAPI规范Swagger

    OPENAPI规范 是一种规范,Swagger是一种工具,Swagger帮我们使用OPENAPI更具体更完善,更好. 博客1:https://app.swaggerhub.com/help/index ...

  2. HTTP协议(二)之确保web安全的HTTPS

    一.概述 https并非是应用层的一种新协议.只是HTTP通信接口部分用SSL和TLS协议替代. 通常,HTTP直接和TCP通信.当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了. 简 ...

  3. 页面系统,浏览器检测- 网页基础模块(JavaScript)

    // 浏览器检测,获取,弹出框提醒IE 返回浏览器详情 function GetbrowserSys() { var BrowserMatch = { init: function() { this. ...

  4. IDA Pro安装教程

    1.下载 http://tools.pediy.com/windows/disassemblers.htm 我们这里选择6.8版本下载 2.安装 打开下载的安装包,解压出来进入IDAPro68文件夹, ...

  5. Python爬虫之requests

    爬虫之requests 库的基本用法 基本请求: requests库提供了http所有的基本请求方式.例如 r = requests.post("http://httpbin.org/pos ...

  6. python安装pyMysql

    python2和python3是不兼容的,在python2中,链接数据库使用的是mysqldb,但在python3中是是pyMysql. 1.首先dos进入python安装目录,找到并进入Script ...

  7. C# 远程传输File文件

    /// <summary> /// 向论坛传图片文件 /// </summary> /// <param name="filePath">< ...

  8. react源码探索

    react核心部分为 虚拟dom对象 虚拟dom差异化算法 单向数据流渲染 组件生命周期 事件处理 1) 虚拟dom对象: reactDOM.render(args,element); 这个方法第一个 ...

  9. adb command not found / abd' 不是内部或外部命令,也不是可运行的程序 或批处理文件。最简易修改

    此处提供最简易高效的方法 不需要添加.bash_profile 只需手动设置环境变量 1.打开环境变量设置页面:确保你ANDROID_HOME, JAVA_HOME已经设置好,我们针对abd的环境配置 ...

  10. Java语法基础学习DaySeventeen(多线程续)

    一.线程的特点 1.线程的分类 java中的线程分为两类:守护线程和用户线程.唯一的区别是判断JVM何时离开. 守护线程是用来服务用户线程的,通过在start()方法前调用Thread.setDaem ...