Appearance
SWB 附录 F:使用 SSH
来源:
swb_ug.pdfAppendix F(W-2024.09) 原文标题:Using SSH说明:本页按 2024 版附录 F 的原顺序整理,尽量完整保留 SSH 免密配置和常见权限排障的含义。
本附录目录
附录说明
本附录提供两类信息:
- 如何配置无需密码的 SSH
- 如果 SSH 还是失败,应该优先检查哪些权限和环境项
它的目标很明确:为 SWB 的远程主机访问、集群连通和 swbdiag 之类工具提供一个可用的无交互 SSH 基础。
配置 SSH 无密码访问
手册把“无密码 SSH”拆成 4 个步骤。
1. 生成 SSH 密钥
第一步是生成 SSH 密钥。
手册特别提醒:提示输入 passphrase 时,应当留空。原文示例如下:
bash
[pjones@myunix.com ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pjones/.ssh/id_rsa):
[Press the Enter key]
Created directory '/home/pjones/.ssh'.
Enter passphrase (empty for no passphrase): [Press the Enter key]
Enter same passphrase again: [Press the Enter key]
Your identification has been saved in /home/pjones/.ssh/id_rsa.
Your public key has been saved in /home/pjones/.ssh/id_rsa.pub.
The key fingerprint is:
5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 pjones@myunix.com这里的关键点不是算法本身,而是“不要给密钥再加交互式口令”,否则就违背了附录所要求的静默登录目的。
2. 把公钥写入 authorized_keys
第二步是把新生成的公钥追加到主目录中的 authorized_keys 文件。手册示例:
bash
[pjones@myunix ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys这一行的含义很直接:让目标主机上的 SSH 服务端信任你刚刚生成的公钥。
3. 创建或更新 ~/.ssh/config
第三步是在主目录下创建或更新 SSH 配置文件。原文示例:
bash
[pjones@myunix ~]$ vi ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
IdentityFile ~/.ssh/id_rsa这段配置的作用可以理解为:
- 对所有主机统一套用规则
- 关闭交互式 host key 检查
- 不把 known hosts 写到常规文件里
- 显式指定默认私钥文件
4. 检查是否已能免密登录
第四步就是实际验证:确认 SSH 是否已经可以在不输入密码的情况下工作。
附录虽然没有展开具体测试命令,但它的意图很明确,就是要求你在把这套 SSH 用到 SWB、集群或远程诊断前,先独立验证 SSH 已经能静默连接。
排障提示
附录 F 接下来给出 Troubleshooting Tips。手册先强调一个总原则:SSH 对文件权限非常敏感。
也就是说,就算密钥和配置内容都写对了,只要权限不符合 SSH 的预期,也依然可能失败。
典型权限要求
手册给出了 5 项典型权限检查。
a. ~/.ssh/authorized_keys 应为 640
text
-rw-r----- 1 pjones synopsys 401 May 18 2023 authorized_keysb. ~/.ssh 目录应为 700
text
drwx------ 4 pjones synopsys 4096 May 18 2023 /home/pjones/.sshc. ~/.ssh/config 应为 644
text
-rw-r--r-- 1 pjones synopsys 91 May 18 2023 configd. ~/.ssh/id_rsa 私钥应为 600
text
-rw------- 1 pjones synopsys 1675 May 18 2023 id_rsae. 主目录的属组不能具有写权限
手册明确指出:你的 home 目录所属组不能有写权限。它建议把 home 目录权限设成 755,也就是:
text
drwxr-xr-xAgent admitted failure to sign using the key 的处理
附录最后给出一个非常具体的错误场景。
如果你遇到如下报错:
text
Agent admitted failure to sign using the key手册建议先在环境中设置:
bash
SSH_AUTH_SOCK=0然后再次尝试 SSH。
如果这样能解决问题,说明问题很可能出在 SSH agent 链路上。手册进一步建议:把这个设置写进你的 .bashrc 或 .cshrc 中。
附录 F 的核心价值,在于把“SWB 远程不通”里的 SSH 前置条件压成一张很短但很实用的检查表:
- 是否生成了无 passphrase 的密钥
- 公钥是否写进了
authorized_keys ~/.ssh/config是否指定了正确身份文件authorized_keys、.ssh、私钥和主目录权限是否满足 SSH 的要求- 是否存在
SSH_AUTH_SOCK/ agent 导致的签名失败