Skip to content

SWB 附录 F:使用 SSH

来源:swb_ug.pdf Appendix 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_keys

b. ~/.ssh 目录应为 700

text
drwx------ 4 pjones synopsys 4096 May 18 2023 /home/pjones/.ssh

c. ~/.ssh/config 应为 644

text
-rw-r--r-- 1 pjones synopsys     91 May 18  2023 config

d. ~/.ssh/id_rsa 私钥应为 600

text
-rw------- 1 pjones synopsys   1675 May 18 2023 id_rsa

e. 主目录的属组不能具有写权限

手册明确指出:你的 home 目录所属组不能有写权限。它建议把 home 目录权限设成 755,也就是:

text
drwxr-xr-x

Agent 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 前置条件压成一张很短但很实用的检查表:

  1. 是否生成了无 passphrase 的密钥
  2. 公钥是否写进了 authorized_keys
  3. ~/.ssh/config 是否指定了正确身份文件
  4. authorized_keys.ssh、私钥和主目录权限是否满足 SSH 的要求
  5. 是否存在 SSH_AUTH_SOCK / agent 导致的签名失败

基于 Sentaurus TCAD 官方文档构建

代码块