centos实现免密登陆及远程操作
----------------------------**********-------------------------------------------------
免密码登陆
第一步:
执行:ssh-keygen -t rsa,并一直回车,直到结束
系统/root/.ssh/下面会生成 id_rsa(私钥)和 id_rsa.pub(公钥) 两个文件
第二步:
进入到文件夹下面 cd /root/.ssh 把id_rsa.pub 拷贝到目标服务器的/root/.ssh(例如:目标服务器111.111.111.111) scp ./id_rsa.pub root@111.111.111.111:/root/.ssh 出现提示输入yes,并输入目标服务器的密码即可
第三步:
登陆目标服务器,到 /root/.ssh目录下面 执行:cat ./id_rsa.pub >> authorized_keys 到此,即完成免密登陆
在原目标的服务器执行 ssh root@111.111.111.111 即可登陆,无需输入任何信息 以后,其它服务器,只需要执行第二步跟第三步,除非,原服务器生成的密钥有变动,这样都可以实现免密登陆
----------------------------**********-------------------------------------------------
远程操作
第一种:
由于上面已经实现免密码登陆,所以可以直接执行相应命令
result=`ssh root@111.111.111.111 "cd /home;touch kkk.txt &> /dev/null;"'echo $?'` echo $result
注意:result=后面是添加键盘上面跟 ~ 一起的同按键 ` 并不是句号跟分号
第二种:
ssh root@111.111.111.111 > /dev/null 2>&1 << kkmmccc cd /home touch abcdefg.txt exit kkmmccc
远程执行的命令在“<< kkmmccc” 至“ kkmmccc ”之间,kkmmcc可以随便替换,但必须保持开头跟结尾一致,加exit是退出远程,也可把此程序写成一个sh文件直接执行
第三种:
带有变量的操作,通过定义一个sh直接执行
#!/bin/bash #远程替换的源文件绝对路径 sfile=/home/a.txt #远程替换的目标文件绝对路径 dfile=/home/a.txt #目标ip dip=111.111.111.111 #目标端口 dport=22 #将要执行的命令 command="cd /home;touch ceshi.txt" #进行远程替换文件 scp -P ${dport} ${sfile} ${dip}:${dfile} &> /dev/null #进行远程执行命令 result=`ssh -p ${dport} root@${dip} "${command} &> /dev/null;"'echo $?'` #判断远程执行命令是否成功,通过$result判断 if [ $result -eq 0 ]; then echo "命令执行成功" else echo "命令执行失败" fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!