我刚刚切换了本地系统,因此我必须使用 ssh 密钥再次返回服务器。我通常用来ssh david@server
进入。但由于我已经切换到新机器,我进入服务器的唯一方法就是ssh -i path/to/id_rsa_server david@0.0.0.0
指向我机器上的私钥。
.ssh
现在我已经在从上一台机器复制的文件夹中设置了一个配置文件。该文件如下所示:
Host server
Hostname 0.0.0.0
User david
IdentityFile ~/.ssh/id_rsa_server
Run Code Online (Sandbox Code Playgroud)
如何让 ssh 系统重新识别该配置文件?
通常 ssh 将从~/.ssh/config
或全局获取其配置/etc/ssh/config
。
去测试:
-v
flag 来查看您的配置文件是否已加载。正如评论所建议的,您可以使用额外的v
s 来增加详细程度,例如-vvv
.user@pc:~$ ssh -v server
OpenSSH_8.2p1 Ubuntu-4, OpenSSL 1.1.1f 31 Mar 2020
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 1: Applying options for server
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
Run Code Online (Sandbox Code Playgroud)
.ssh/config
。目录权限应为700,并检查所有权。第 1 步可能会给出提示。user@pc:~$ ls -ld -- .ssh*/
drwx------ 2 user user 4096 May 25 23:05 .ssh/
user@pc:~$ ls -la .ssh/config
-rw-rw-r-- 1 user user 39 May 25 23:05 .ssh/config
Run Code Online (Sandbox Code Playgroud)
ssh
并-F <path-to-config>
查看是否存在问题。user@pc:~$ ssh -v -F ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
上述项目应确认权限、路径和文件位置。