AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 484343
Accepted
Luke
Luke
Asked: 2013-03-04 18:56:30 +0800 CST2013-03-04 18:56:30 +0800 CST 2013-03-04 18:56:30 +0800 CST

SSH远程执行带特殊字符的命令

  • 772

我在通过具有特殊字符的 SSH 执行远程命令时遇到问题。我正在尝试从 MySQL 导出数据库以进行备份。这是我在本地脚本中的命令:

#!/bin/bash
ssh user@host "mysqldump -u dbname -p'p$ssw0rd' --lock-tables=false dbname > ~/sites/mysite/backup/dbname.sql"

如您所见,我在密码周围使用了 ' 字符。当我执行此脚本时,出现以下错误:

mysqldump: Got error: 1045: Access denied for user 'dbname'@'localhost' (using password: YES) when trying to connect

但是,当我手动 ssh 进入机器并执行命令时,它执行得很好。我的印象是,通过 ssh 执行命令会丢失一些东西,密码也不会通过。

如何通过 ssh 执行带有特殊字符的命令?

mysql
  • 2 2 个回答
  • 9364 Views

2 个回答

  • Voted
  1. Best Answer
    MelBurslan
    2013-03-04T19:10:17+08:002013-03-04T19:10:17+08:00

    您可以尝试转义传递给 ssh 的命令中的特殊字符。在这种情况下你的

    p$ssw0rd

    成为

    p\$ssw0rd

    由于您使用的 shell 可能会以不同方式解释“\”字符,因此我不能保证 100% 解决您的问题,但尝试一下也无妨。

    • 6
  2. EEAA
    2013-03-04T19:03:49+08:002013-03-04T19:03:49+08:00

    为什么不在选项文件中指定您的凭据?

    编辑~/.my.cnf并添加如下内容:

    [mysql]
    user = 'dbname'
    password = 'p$ssw0rd'
    

    确保运行$ chmod 600 ~/.my.cnf以限制对该文件的访问。

    然后你不需要在你的 SSH 命令中指定那些。无论如何,这可以说是一种更安全的做事方式,因为用户名/密码不会出现在您~/.bash_history 或正在运行的进程列表中(所有用户都可以看到)。

    • 2

相关问题

  • 开源与专有关系 db mgt 系统的优缺点是什么?

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

  • 如何移动 MySQL 的数据目录?

  • 通过 VPN 连接什么是远程服务器 IP?

  • mysql崩溃

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve