ssh-copy-id使用密钥进行免密登录_虚拟机ssh-copy-id server本机显示尝试用新密钥登录-程序员宅基地

技术标签: ssh  bash  centos  

ssh-copy-id使用密钥进行免密登录


 ssh使用密钥登录过程:主机A创建公钥私钥,并将公钥复制到主机B的用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。

  • 生成密钥使用的命令:ssh-keygen -t rsa

  • 拷贝密钥使用的命令:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

下面编写基于bash的sshpass.sh脚本完成免密登录过程

在主机A上执行vi /home/sshpass.sh将以下内容保存为sh文件。

#!/bin/bash
# This operation copies the ssh key(s) to the target host and enables password free login
# @author xincono 2020-04-14 16:10

echo 'This operation copies the ssh key(s) to the target host and enables password free login'
if [ ! -s "/root/.ssh/id_rsa.pub" ]; then
  echo "ssh-keygen -t rsa"
  ssh-keygen -t rsa
fi

read -p "Enter target host address: " CONFIRM
if [ -n "$CONFIRM" ]; then
  HOST=$CONFIRM

  ssh ${HOST} -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no "date" >/dev/null 2>&1
  if [ $? -ne 0 ]; then
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@${HOST}
    echo "OK"
  else
    echo "The ssh key(s) already exists."
  fi
fi

在这里插入图片描述
执行sh /home/sshpass.sh命令,并按照提示按回车以及输入IP地址和密码即可完成root用户免密操作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xincono/article/details/105513828

智能推荐

TLS OpenSSL 证书验证_ssl_get_verify_result-程序员宅基地

文章浏览阅读690次。int verify_err = SSL_get_verify_result(client.ssl);拿到非X509_V_OK结果后,需由客户端/服务端应用层来决定是否中止TLS流程,在一些场景下,openSSL库并不会通过Alert Message来反馈证书验证失败的结果,具体如下:场景1:当服务端只发送合法的用户证书时,客户端设置根证书和二级证书:r = SSL_CTX_load_verify_locations(k->ctx, "/data/user/0/cn.areful.ope_ssl_get_verify_result

android studio 使用Picasso第三方库的方法_android studio中picasso-程序员宅基地

文章浏览阅读3.1k次。github:https://github.com/square/picasso引入依赖:compile 'com.squareup.picasso:picasso:2.5.2'public class usePicasso extends AppCompatActivity { ImageView imageView; @Override protected void o..._android studio中picasso

使用大图+脚本,生成各种size的app icon和图片素材_sh脚本 sips-程序员宅基地

文章浏览阅读770次。美术UI在公司是宝贵的资源,集各种项目宠爱于一身。为了努力完成好老板的进度需求,不给UI添麻烦。程序员开始忙活了。在iOS里面,我们使用image assert来管理素材和app icon。为什么呢?因为方便,按照image assert要求的尺寸拖进去就好了。Image Assert方便适配各种大小的屏幕什么?UI只给你大图,压缩啥的自己搞。What the f*_sh脚本 sips

finally面试常问_finally{}面试-程序员宅基地

文章浏览阅读541次,点赞3次,收藏3次。1.finally在什么时候执行,什么时候不执行?finally在 电脑关机、程序不再内存等非正常情况下不执行,其他情况都执行。唯一一种在代码中导致finally不执行的情况就是System.exit(0);public class Demo8 { public static void main(String[] args) { haha(); } public static void haha(){ try{ i_finally{}面试

数据流_小记_数据流条目怎么写-程序员宅基地

文章浏览阅读625次。数据流:针对最底层的数据,进行最基本的字节字符数据的读写操作。构造方法:public DataInputStream(InputStream in);//基础的InputStraeam构建DataInputStreampublic DataOutputStream(OutputStream out);//基础的OutputStraeam构建DataOutputStream写入字符串:writeBy_数据流条目怎么写

mysql导入sql脚本文件的正确姿势_mysql怎么导入sql脚本-程序员宅基地

文章浏览阅读10w+次。欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl_mysql怎么导入sql脚本

随便推点

SharePoint Online 定制左侧导航_sharepoint左边的列表如何制作-程序员宅基地

文章浏览阅读673次。  前言  之前几篇文章,都是为大家介绍工作流相关的知识,这一篇文章,我们先暂别工作流,定制一下左侧导航,因为实在是太丑了。  正文  1.先看看我们定制完的左侧导航吧,虽然不是特别的美观,但是!但是跟页面看起来很协调,有木有!  如果你觉得这款导航不好看,其实可以用本文的方式,定制成你喜欢的样子  2.首先创建一个自定义列表用来保存导航,过程比较简单就不截图详解了,有前面..._sharepoint左边的列表如何制作

Matlab调用C接口_matlab ansi c 接口-程序员宅基地

文章浏览阅读884次。matlab调用C语言mex标签(空格分隔): 学习笔记一、为什么要用C语言编写MEX文件MATLAB是矩阵语言,是为向量和矩阵操作设计的,一般来说,如果运算可以用向量或矩阵实现,其运算速度是非常快的。但若运算中涉及到大量的循环处理,MATLAB的速度的令人难以忍受的。解决方法之一为,当必须使用for循环时,把它写为MEX文件,这样不必在每次运行循环中的语句时MATLAB都对它们进行解释。二、 编译_matlab ansi c 接口

使用docker-compose部署Kibana和es_docker-compose es kibana-程序员宅基地

文章浏览阅读1.7k次。目录1. 概述2. 查看es几点容器的实际IP3. 修改kibana容器中kibana.yml文件中es的链接ip:port4. 验证结果5. 参考资料1. 概述基于docker-compose启动es集群和kibana后,在浏览器中访问kibana的5601端口,浏览器显示下异常信息:Kibana server is not ready yes。于是我们接下来就解决该问题:docker kibana出现Kibana server is not ready yet问题2. 查_docker-compose es kibana

CSS深入理解之line-height_css line-height-程序员宅基地

文章浏览阅读1.3w次,点赞19次,收藏65次。以下文字整理自慕课网——张鑫旭的《CSS深入理解之line-height》。一、line-height的定义line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度。定义三问:什么是基线?为何是基线?需要两行?如图红色线即为基线基线(baseline),指的是一行字横排时下沿的基础线,基线并不是汉字的下端沿,而是英文字母x的下端沿。基线乃*线定义之根本! (*线指任意线)第3个问题,一行文字难道就没有行高吗?非也,一行文字也是有行高的,两行的定义已_css line-height

SQLServer之创建存储过程_sqlserver create procedure-程序员宅基地

文章浏览阅读2.6w次,点赞5次,收藏51次。创建存储过程注意事项在 SQL Server、 Azure SQL Database、Azure SQL 数据仓库和并行数据库中创建 Transact-SQL 或公共语言运行时 (CLR) 存储过程,存储过程与其他编程语言中的过程类似。可以在当前数据库中创建永久过程,或者在 tempdb 数据库中创建临时程序。存储过程可以: 接受输入参数并以输出参数的格式向调用过程或批处理返回多..._sqlserver create procedure

Java常用API(9)----BigInteger类、BigDecimal类_import java.math.biginteger; 2 public class test {-程序员宅基地

文章浏览阅读2.9k次。一、BigInteger类 点击此处返回总目录 二、BigInteger类的构造方法 三、Big..._import java.math.biginteger; 2 public class test { 3 public static void