「求助」CRT连接Linux遇到问题

问题描述

最近在使用CRT软件连接Linux服务器时遇到了一个问题,希望得到大家的帮助。

问题现象

当我使用CRT软件连接Linux服务器时,会出现一下提示信息:

The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.

RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.

Are you sure you want to continue connecting (yes/no)?

此时,我输入yes之后,会再次出现如下提示信息:

Failed to add the host to the list of known hosts (/home/user/.ssh/known_hosts).

然后,CRT就自动关闭了,连接失败。

问题分析

这种情况通常是由于CRT软件没有权限写入SSH公钥,导致连接失败。

SSH公钥

SSH公钥是一种身份认证方式,当我们使用SSH连接到另一台计算机时,会在本地生成一对密钥(公钥和私钥),其中公钥被保存在远程服务器上,私钥被保存在本地。当我们连接到远程服务器时,服务器会向客户端发送一段随机字符串,客户端会使用自己的私钥对这段随机字符串进行加密,发送给服务器。服务器收到加密后的字符串后,会使用预先保存的公钥对其进行解密,如果解密结果与发送的随机字符串一致,那么就可以连接到服务器了。

解决方法

解决这个问题的方法其实很简单,只需要在CRT软件中设置一个保存SSH公钥的路径即可。

修改配置

在CRT软件中,选择 Options -> Global Options,进入全局设置。然后在左侧栏中选择 SSH2 -> Public Keys,找到 "Use OpenSSH or ssh.com format key files" 选项,并将其打上勾:

接着,在 "Public key file" 选项中输入保存路径,例如:C:\Users\Administrator\.ssh\id_rsa.pub,然后点击 "Apply" 和 "OK" 保存修改:

保存SSH公钥

最后,我们需要手动创建一个保存SSH公钥的目录,并设置权限。在终端中执行如下命令:

mkdir ~/.ssh

chmod 700 ~/.ssh

touch ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

总结

通过以上的设置,我们就可以成功连接到Linux服务器了。

需要注意的是,SSH公钥一定要保存在正确的位置,并且设置路径时要确保路径的正确性。

操作系统标签