MobaXterm远程免密登录疑难杂症全解析:从pk.pub到authorized_keys的避坑指南
1. 密钥文件格式的坑从pk.pub到ppk的生死局第一次用MobaXterm配置SSH免密登录时我对着那个死活弹不出警告的pk.pub文件发了半小时呆。后来才发现Windows这个老狐狸默认隐藏了文件扩展名我的pk.pub其实是个披着羊皮的pk.pub.txt这种问题在技术社区里被吐槽了上万次但每年仍有大量新手前赴后继地掉坑。文件扩展名显示的正确打开方式以Win10为例打开任意文件夹点击顶部菜单栏的查看在显示/隐藏区域勾选文件扩展名选项这时你会看到所有文件的真实全名包括隐藏的.txt后缀# 验证文件真实类型的Linux命令适用于从Windows传输到Linux的情况 file pk.pub # 正确的应该显示 PEM RSA public key常见翻车现场有两种情况A文件显示为pk.pub但实际是txt格式右键属性可见情况B文件确实是pub格式但被MobaXterm误识别对于情况B需要手动转换密钥格式。MobaXterm自带的工具链其实藏了个宝贝# 使用内置的puttygen工具转换密钥格式 puttygen pk.pub -o pk.ppk -O private转换完成后记得在MobaXterm的SSH认证设置里重新指定ppk文件路径。我遇到过更诡异的情况是文件编码问题——某些Windows编辑器会偷偷把UTF-8换成带BOM的版本导致Linux服务器认不出密钥。这时可以用Notepad另存为无BOM的UTF-8格式。2. Server refused our key权限迷宫逃生指南当看到Server refused our key的报错时先别急着砸键盘。这个报错就像医院拍的X光片——能看出问题但不说病因。根据我处理过的上百个案例90%的问题出在下面三个环节故障树分析密钥文件权限问题概率45%authorized_keys权限不是600.ssh目录权限不是700用户目录所有权问题概率30%用户home目录被root篡改过权限SELinux安全策略拦截概率25%# 一键检测脚本需要在目标服务器执行 ls -ld ~/.ssh ~/.ssh/authorized_keys | awk {print $1,$3,$4,$9}正常应该显示drwx------ username username /home/username/.ssh -rw------- username username /home/username/.ssh/authorized_keys如果权限不对用这套组合拳修复chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chown $USER:$USER ~/.ssh chown $USER:$USER ~/.ssh/authorized_keys遇到SELinux拦截时常见于CentOS可以临时测试# 临时关闭SELinux保护 restorecon -Rv ~/.ssh如果这招有效说明需要永久调整策略semanage fcontext -a -t ssh_home_t ~/.ssh/authorized_keys3. authorized_keys的隐藏关卡换行符战争有一次我帮同事排查问题所有权限都正确密钥内容也肉眼比对过就是登录失败。最后用vim的:set list命令才发现——Windows的CRLF换行符混进了authorized_keys这个坑爹问题浪费了我们两天时间。多系统协作时的处理建议在Linux服务器上直接用ssh-keygen生成密钥对用scp命令传输而非复制粘贴scp -p ~/.ssh/id_rsa.pub userremote:~/.ssh/authorized_keys如果必须手动复制使用dos2unix工具转换dos2unix ~/.ssh/authorized_keysMobaXterm有个隐藏功能在文件传输对话框里勾选Preserve file permissions可以避免权限被重置。另外authorized_keys其实支持多密钥共存每个密钥需要单独一行。我见过有人不小心把多个密钥连成一行导致所有密钥失效。4. 图形界面缺失时的应急方案当遇到无图形界面的服务器时MobaXterm的X11转发可能会失效。这时候不要慌试试这几招Plan A强制命令行模式ssh -o PreferredAuthenticationspublickey -o PubkeyAuthenticationyes userhostPlan B启用详细日志定位问题ssh -vvv userhost ssh.log 21日志里搜索这些关键词Offering public key表示客户端已发送密钥Authentication succeeded表示服务端已接受no mutual signature algorithm算法不匹配Plan C降级加密算法兼容老系统ssh -o HostKeyAlgorithmsssh-rsa -o PubkeyAcceptedAlgorithmsssh-rsa userhost对于必须使用图形界面的场景可以尝试在服务器安装最小化X11环境# CentOS系 yum install xorg-x11-xauth xterm # Ubuntu系 apt install xauth xterm最后提醒大家免密登录虽然方便但一定要保护好私钥文件。我习惯给ppk文件再加一道密码保护虽然每次登录要多输一次密码但安全性提升不止一个量级。遇到生产环境的问题时先用测试账号验证别拿root账号玩火。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2450609.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!