sshpass命令

ssh命令默认不允许以非交互的方式传递密码。sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。

基本语法

sshpass -p 'password' ssh user@hostname command

1、直接远程连接某台主机

sshpass -p password ssh root@192.168.1.2

2、远程执行脚本

sshpass -p password ssh root@192.168.1.2   "sh /path/to/script.sh"

3、执行命令

sshpass -p password ssh root@192.168.1.2 "ls"  //单条命令 

sshpass -p password ssh root@192.168.1.2 "cd /home/;pwd;ls"  //多条命令

4、拷贝文件

sshpass -p password scp root@192.168.1.2:/home/fklds.txt  ~/

(可以用于服务器之间的文件的分发)

5、解决 ssh 首次链接

解决 ssh 首次链接时,会有 Are you sure you want to continue connecting 询问提示的问题#
当您第一次使用 ssh 连接远程主机时,ssh 命令会提示您确认远程主机的公钥指纹(Are you sure you want to continue connecting ),以确保您连接的是正确的主机。如果您希望避免这个交互式提示,可以在 ssh 命令中添加 -o 选项,并设置参数 StrictHostKeyChecking=no,例如:

sshpass -p 'password'  ssh -o StrictHostKeyChecking=no user@host


上述命令会禁用 ssh 的主机密钥验证,直接建立连接。需要注意的是,这样做可能会存在安全风险,因为无法保证您连接到的是正确的主机,同时也无法检测到中间人攻击等安全问题。

如果您希望永久禁用 SSH 的主机密钥验证,可以在 ssh 配置文件中添加以下配置:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
上述配置会将 StrictHostKeyChecking 设置为 no,并将 UserKnownHostsFile 设置为 /dev/null,即不再保存已知主机的公钥指纹。这样做同样存在安全风险,需谨慎使用。

=========================================================================

确保在生产环节中密码不会被泄露!!!

参考

https://www.jianshu.com/p/56cde26137b2

https://www.python100.com/html/86119.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sshpass是一个Linux命令行工具,可以自动输入密码并且登录到远程主机。它可以用于在shell脚本或批处理文件中自动化ssh登录过程。以下是sshpass的基本使用方法: 1. 安装sshpass命令 在Ubuntu或Debian系统上,可以使用以下命令安装sshpass: ``` sudo apt-get install sshpass ``` 在CentOS或RedHat系统上,可以使用以下命令安装sshpass: ``` sudo yum install sshpass ``` 2. 使用sshpass命令登录到远程主机 以下是sshpass命令的基本语法: ``` sshpass -p 'password' ssh user@host ``` 其中,“-p”选项指定密码,“ssh”是ssh客户端命令,后面的参数是登录的用户名和远程主机的IP地址或域名。例如,要使用sshpass命令以“user”用户身份登录到IP地址为“192.168.1.100”的远程主机,密码为“password”,可以使用以下命令: ``` sshpass -p 'password' ssh user@192.168.1.100 ``` 3. 使用sshpass命令执行远程命令 除了登录到远程主机之外,sshpass还可以用于在远程主机上执行命令。以下是sshpass命令执行远程命令的语法: ``` sshpass -p 'password' ssh user@host command ``` 其中,“command”是要在远程主机上执行的命令。例如,要在远程主机上创建一个名为“test”的目录,可以使用以下命令: ``` sshpass -p 'password' ssh user@192.168.1.100 mkdir test ``` 注意,sshpass命令的使用存在一定的安全风险,因为密码以明文形式存储在命令行中,容易被恶意程序窃取。因此,建议使用SSH密钥认证来代替密码认证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值