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

 

posted @ 2024-02-25 22:31  Mrwhite86  阅读(82)  评论(0编辑  收藏  举报