sshpass免密码处理
一、需求功能:
如何使用一条命令直接从机器A登陆机器B,而免掉登录输入密码交互的流程
主要使用到两个场景:
A:ssh免密从A机器自己往B机器拷贝文件
B:ssh远程登录B机器并且执行命令
二、具体的操作语句:
1、将主机目录文件拷贝至远程主机目
sshpass -p {密码} scp 本地主机目录用户名 @ 主机 I P : {本地主机目录} {用户名}@{主机IP}:本地主机目录用户名@主机IP:{远程主机目录}
2、远程连接主机并执行命令
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} ‘具体的操作命令’
其中:ssh-o StrictHostKeyChecking=no 含义是忽略密码提示
三、实际操作命令:
1.将文件从机器A拷贝至机器B
sshpass -p 'password@2024' scp -r /opt/test/test01/123.txt root@192.168.37.9:/opt/test/scp-file/
2.远程连接主机并执行命令
sshpass -p 'password@2024' ssh -o StrictHostKeyChecking=no root@192.168.37.9 ls -l /opt/test/scp-file/
四、缺点:
因为免密擦做时是明文的,除非是在测试环境或者安全的场景下面使用,否则会存在一些风险,也可以参考使用主机互信与expect命令来实现同样的功能
主机互信:https://www.cnblogs.com/mrwhite2020/p/15404164.html
expect命令:https://www.cnblogs.com/mrwhite2020/p/16769739.html