材料与逻辑

从原子到结构,从数据到洞察

0%

ssh生成密钥、配置及登录

配置 SSH Config 文件(强烈推荐)

这是最专业、最快的方法。通过配置别名,你可以用 ssh myserver 代替一长串命令。

配置步骤:

  1. 打开终端,编辑配置文件(如果没有则会自动创建):

    1
    nano ~/.ssh/config
  2. 在文件中输入以下格式的内容:

    1
    2
    3
    4
    Host dev             # 你自定义的别名
    HostName 192.168.1.100 # 服务器真实 IP
    User root # 你的登录名
    Port 22 # 端口号(默认22可不写)
  3. Ctrl + O 保存,Ctrl + X 退出。

  4. 连接: 现在你只需要在终端输入:

    1
    ssh dev

终极级:实现免密登录(SSH Key)

即使有了别名,每次输入密码依然很慢。通过密钥对认证,可以实现“秒连”。

操作流程:

  1. 在本机生成密钥(如果已有可跳过):

    1
    ssh-keygen -t ed25519

    (一路回车即可)

  2. 将公钥发送给服务器

    1
    ssh-copy-id dev  # 这里的 dev 是你在第 2 步设定的别名
  3. 输入一次服务器密码后,建立信任关系。

  4. 效果:以后输入 ssh dev 即可直接进入系统,无需密码。

第一步:修改服务器配置

  1. 在服务器终端输入:

    1
    sudo nano /etc/ssh/sshd_config
  2. 找到以下几行,确保它们没有被 # 注释,且参数如下:

    • PubkeyAuthentication yes (允许公钥认证)
    • AuthorizedKeysFile .ssh/authorized_keys (指定存放公钥的位置)
  3. 检查 PasswordAuthentication 是否为 yes(如果你还想保留密码登录)。

  4. Ctrl + O 保存,Ctrl + X 退出。

第二步:重启服务器 SSH 服务

修改完配置后必须重启服务才能生效:

1
2
3
sudo systemctl restart ssh
# 如果是较老的系统,请尝试:
# sudo service ssh restart

🧪 再次验证流程

在完成上述操作后,回到你的 Mac 终端,执行:

1
ssh -v dev

正常的情况应该是: 你会看到 Authentications that can continue: publickey,password。 接着看到 debug1: Offering public key: /Users/yourname/.ssh/id_ed25519。 最后直接进入系统。


⚠️ 研发人员必须注意的安全点

如果你的服务器是暴露在公网(如阿里云、腾讯云等),一旦开启了公钥登录并验证成功,强烈建议:

  1. 先确保密钥登录彻底成功。
  2. 再次编辑 /etc/ssh/sshd_config,将 PasswordAuthentication yes 改为 no
  3. 效果: 这样即便黑客有你的密码,没有你的物理电脑(私钥)也永远进不去系统,这对保护您的实验原始数据和知识产权至关重要。