mac用户需配置ssh密钥认证实现长期、安全、免密访问linux服务器,包括生成rsa密钥对、上传公钥至服务器、启用钥匙串自动管理、设置别名一键登录,并验证密钥登录生效。

Mac用户需要长期、安全、免密地访问Linux服务器,比如部署网站、调试后端服务或用VSCode远程开发,此时必须配置SSH密钥认证,否则每次连接都要输密码,既低效又存在被暴力破解风险。
生成本地RSA密钥对
打开“终端”→“前往”菜单→“应用程序”→“实用工具”→“终端”。
执行命令:ssh-keygen -t rsa -b 4096,连续按三次回车,接受默认保存路径(~/.ssh/id_rsa)和空密码(若需更高安全性,可设密钥密码,但会牺牲部分自动化体验)。
【私钥文件 ~/.ssh/id_rsa 必须严格保密,切勿上传、截图或发给他人】
将公钥上传至Linux服务器
方法一:使用 ssh-copy-id(推荐,一步到位)
在终端中运行:ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip,其中 username 是服务器上的用户名(如 ubuntu、root),server_ip 是服务器公网或内网IP地址。
系统会要求输入该用户的密码(仅此一次),成功后公钥自动追加到 ~/.ssh/authorized_keys 中。
方法二:手动上传(当 ssh-copy-id 不可用时)
先用 scp 把公钥传过去:scp ~/.ssh/id_rsa.pub username@server_ip:/tmp/id_rsa.pub;
再 SSH 登录服务器:ssh username@server_ip;
执行三行命令:mkdir -p ~/.ssh && chmod 700 ~/.sshcat /tmp/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
注意:若服务器返回 Permission denied (publickey),大概率是 ~/.ssh/authorized_keys 权限过宽或文件所有者错误——必须确保该文件属用户本人且权限为600。
启用 macOS 钥匙串自动管理密钥
这一步能让 Mac 记住密钥密码,后续 SSH 连接不再弹窗输入。
第一步:启动 ssh-agent 并加入钥匙串:eval "$(ssh-agent -s)"
第二步:把私钥添加进钥匙串:ssh-add --apple-use-keychain ~/.ssh/id_rsa
执行后会提示输入一次密钥密码,输入正确即完成绑定。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
第三步:配置全局自动加载策略
编辑配置文件:nano ~/.ssh/config
在文件末尾添加:
Host *AddKeysToAgent yesUseKeychain yesIdentityFile ~/.ssh/id_rsa
保存退出(Ctrl+O → 回车 → Ctrl+X)。此后所有 SSH 连接都会自动调用已解锁的密钥。
配置别名实现一键登录
不再记忆 IP 和用户名,让命令极简:
① 编辑 SSH 配置文件:nano ~/.ssh/config
② 在文件底部新增一段(注意缩进用空格,不能用 Tab):
Host myserverHostName 192.168.0.110User ubuntuPort 22
③ 保存退出。现在只需在终端输入:ssh myserver,即可直连,无需密码、无需记 IP。
如果有多台服务器,每台占一个 Host 块,用空行隔开即可。别名支持字母、数字、短横线,但不能含下划线或空格。
验证密钥登录是否生效
执行:ssh -T myserver(或 ssh -T username@server_ip)
若看到类似 Welcome to Ubuntu 或命令行提示符(如 ubuntu@myserver:~$),说明密钥认证成功。
若仍提示输入密码,请检查:服务器端 /etc/ssh/sshd_config 中 PubkeyAuthentication 是否为 yes,且未被注释;然后重启服务:sudo systemctl restart sshd(Ubuntu/Debian)或 sudo systemctl restart ssh(CentOS/RHEL)。










