ssh 免密码登录远程服务器最佳实践

news/2025/2/11 4:37:13/

文章目录

  • 场景
  • 实现

场景

工作中遇到需要使用多个云平台多个k8s集群的情况. 某些云平台不能使用desktop访问, 所以只能远程登录到指定访问权限的虚拟机. 在这个前提下一般是指知道这些虚拟的ip, user 以及 password. 使用ssh登录每一次都需要输入密码, 使用scp拷贝的时候也涉及到输入密码. 一旦涉及到较多的虚拟机需要登录,那么这回让工作效率变低. 这里总结一下免密码登录多个远程服务器的最佳实践.

实现

假设有两个远程服务器需要我们登录,分别是server1(ip1, user1, pass1) 以及server2(ip2, user2, pass2).

首先为每一个服务器创建ssh私钥和公钥

ssh-keygen -t rsa -b 4096

默认情况会在~/.ssh/目录下面生成私钥文件id_rsa.pub 和 公钥文件 id_rsa. 这里因为有多个服务器所以这里创建的时候使用特定的密钥文件名替换默认的密钥文件名字. 比如以~/.ssh/server1_rsa~/.ssh/server2_rsa 作为服务器的私钥名.

生成之后需要把对应公钥使用指令ssh-copy-id上传到远程的服务器的~/.ssh/authorized_keys 文件中.

ssh-copy-id -i {public key file } {username}@{remote_server_ip}

比如这里将生成的server1_rsa.pub 拷贝到server1, server2_rsa.pub 拷贝到server2

ssh-copy-id -i ~/.ssh/server1_rsa.pub user1@pass1
ssh-copy-id -i ~/.ssh/server2_rsa.pub user2@pass2

这里注意到需要输入服务器密码.

之后再配置~/.ssh/config文件

# server 别名
Host myserver# server ipHostName remote_server_ip# 登陆用户名User username# 私钥路径IdentityFile /path/to/your/private/keyfile

这里需要配置两个服务器连接信息:

Host server1HostName ip1User user1IdentityFile ~/.ssh/server1_rsaHost server2HostName ip2User user2IdentityFile ~/.ssh/server2_rsa

至此就可以使用ssh server1 ssh server2 免密码登录相应的服务器.

除此之外scp拷贝指令也可以免去输入密码或者指定private key实现便捷拷贝文件到远程服务器.

scp -r /localpath/* remote_server:/remotepath/

http://www.ppmy.cn/news/1122185.html

相关文章

Flink TaskManger 内存计算实战

Flink TaskManager内存计算图 计算实例 案例一、假设Task Process内存4GB。 taskmanager.memory.process.size4096m 先排减JVM内存。 JVM Metaspace 固定内存 256mJVM Overhead 固定比例 process * 0.1 4096 * 0.1 410m 得到 Total Flink Memory 4096-256-410 3430m 计…

基于下垂控制的并网逆变器控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 主要模块: 建议使用MATLAB2021b及以上版本打开! 功率计算模块、下垂控制模块、电压电流双环控制模块、虚拟阻抗压降模块 扰动设置: 在0.5秒到2秒始端设置0.25Hz的电网频…

数据分享|R语言生态学种群空间点格局分析:聚类泊松点过程对植物、蚂蚁巢穴分布数据可视化...

全文链接 :https://tecdat.cn/?p33676 点模式分析(点格局分析)是一组用于分析空间点数据的技术。在生态学中,这种类型的分析可能在客户的几个情境下出现,但对数据生成方式做出了特定的假设,因此让我们首先看看哪些生态…

Learn Prompt- Midjourney 图片生成:基本设置和预设

/settings指令为模型版本、样式值、质量值和升级器版本等常用选项提供切换按钮。 备注 添加到提示末尾的参数将覆盖/settings中的设置。 模型版本​ 1️⃣ MJ Version 12️⃣ MJ Version 23️⃣ MJ Version 34️⃣ MJ Version 45️⃣ MJ Version 5🌈 Niji Mode&a…

芯片生产封装过程简介及概念

1.wafer,die,chip,cell的概念 wafer(晶圆):高纯度的多晶硅溶解后掺入硅晶体晶种,然后慢慢拉出,形成圆柱形的单晶硅。硅晶棒在经过研磨,抛光,切片后,形成硅晶圆片&#x…

手写call方法

Function.prototype.myCallfunction (context,args) {console.log(arguments)//context 表示call里面的第一个参数也就是需要改变this指向的那个对象。//this表示这个方法//把这个方法挂到需要改变指向的对象身上调用,相当于把this指向了这个对象身上,从…

前端 JS 经典:let、const、var 区别

1. 作用域 if (true) {// var出来的变量是全局的,但是不能跨函数访问var a 0;let b 0;const c 0; } console.log(a); // 0 console.log(b); // b is not defined console.log(c); // c is not defined 2. 变量提升 console.log(a); // 1 console.log(b); // b…

一种便捷的爬虫方法

发现了种快捷的爬虫方法 1.在“检查-Network”要模拟的post请求记录右键-Copy-Copy as cUrl(bash) 2.替换下面代码中文本内容,搞定 import uncurl import requestsresponseeval(uncurl.parse( curl http://xxxxx \-H Accept: application/json, text/plain, */* …