不用密码登录

本文介绍如何使用 ssh-copy-id 命令将 SSH 公钥复制到远程服务器上,以便实现免密码登录。通过具体的命令示例,帮助读者理解并掌握 SSH 密钥的配置流程。
ssh-copy-id -i ~/.ssh/id_rsa.pub "testdev@192.168.35.249"
### 配置 MySQL 实现免密登录的方法以及解决命令行输入密码的安全警告 #### 1. **理解 `[Warning] Using a password on the command line interface can be insecure` 的含义** 此警告表明,在命令行中直接通过 `-p` 参数传递密码存在安全隐患,因为密码将以明文形式存储在 shell 历史记录中。这种做法容易导致密码泄露[^1]。 为了避免这一问题,可以采取以下两种主要方法:一是通过交互式方式手动输入密码;二是配置免密登录功能。 --- #### 2. **实现 MySQL 免密登录的常见方法** ##### A. 使用 `~/.my.cnf` 配置文件 这是最常用的一种方法,适用于个人用户或开发环境中的免密登录需求。 - 创建或编辑用户的主目录下的 `.my.cnf` 文件: ```ini [client] user=your_username password=your_password host=localhost ``` - 确保该文件具有严格的安全权限,以防止其他用户读取敏感信息: ```bash chmod 600 ~/.my.cnf ``` 完成上述配置后,可以直接运行 `mysql` 命令而无需额外指定用户名和密码参数[^2]。 --- ##### B. 利用 Unix Socket 或 Windows Pipe 进行本地无密码认证 对于仅需在同一主机上访问的情况,可以通过调整 MySQL 用户的身份验证插件来简化流程。 - 修改 MySQL 数据库中的用户表,将特定用户的认证方式改为基于套接字(Socket)或其他可信机制: ```sql ALTER USER 'your_username'@'localhost' IDENTIFIED WITH auth_socket; FLUSH PRIVILEGES; ``` 注意:这种方法仅支持本地连接场景,并且要求客户端与服务器位于同一台机器上[^3]。 --- ##### C. 设置默认凭据环境变量 另一种可行的选择是在操作系统层面定义相关环境变量,从而间接达到免密效果。 例如,在 Linux/MacOS 中添加如下内容至 Shell 初始化脚本(如 `.bashrc` 或 `.zshrc`): ```bash export MYSQL_PWD="your_password" ``` 不过需要注意的是,这种方式同样存在一定风险,因为它会使密码暴露于进程列表之中,因此一般不推荐用于生产环境中[^4]。 --- #### 3. **增强安全性的同时保持便捷性** 即便启用了某种形式的免密登录方案,也应始终关注整体系统的安全状况。以下是几条实用建议: - 定期更改重要账户的密码; - 对不同用途分别设立独立子账号而非共用 root 权限; - 启用 SSL/TLS 加密传输通道以防中途截获敏感资料; - 控制好各个配置文档的实际读写许可范围以免意外扩散机密细节。 --- ### 示例代码展示 下面给出一段 Python 脚本实例演示如何借助 subprocess 模块调用已配置好的无参型 mysql 工具执行查询语句: ```python import subprocess def run_mysql_query(query): try: result = subprocess.run( ['mysql', '-e', query], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True ) if result.returncode != 0: raise Exception(f"MySQL Command Failed: {result.stderr}") return result.stdout.strip() except Exception as e: print(e) if __name__ == "__main__": output = run_mysql_query("SELECT VERSION();") print(output) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值