我以为这是常识,没想到居然有人不知道……
楼主的问题就好比,你本地开了 QQ 自动登录,然后 RDP 远程连接到另一台装了 QQ 的 Windows 电脑上,然后问为什么在远程的电脑上无法自动登录。因为你操作的是远程的电脑啊!你本地的密码/密钥又怎么会跑到远程的电脑上去呢?
这样有两个解决办法:
1. 在远程电脑上运行 ssh-keygen -t ed25519 ,把远程电脑上的 ~/id_ed25519.pub 上传到 GitHub SSH Keys 。这本质上和你在本地生成公钥然后上传上一样的,只不过是在另一台电脑上也做一遍。缺点是:如果你有多个远程电脑,每个远程电脑都要做一遍、配置麻烦;远程电脑上的 root 用户或者其他有权限访问磁盘的用户也可以访问你的 GitHub 私有仓库。
2. 使用 ssh agent 并做密钥转发,参见
https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding 优点是你本地配置好了之后 ssh 到任何远程电脑都能使用你本地的私钥;缺点是你的私钥会被加载进远程电脑的内存中,如果你连接不可信的 ssh 主机,对方可以获取到你的私钥。