如何检查与MySQL的连接是否使用SSH?
我正在使用Delphi 2009中新安装的MyDac 10.1.3和Securebridge 9.2连接到一个远程MySQL数据库,该数据库托管在共享服务器(位于JustHostMe)上,他们声称允许SSH。我没有访问服务器本身的权限,因此无法运行任何管理类型的命令,只有SQL。我可以使用端口3306正常连接,但希望使用SSH进行连接 我遵循了教程,制作了我的私钥和公钥,将我的公钥传输到服务器,并使用cpanel对其进行授权,特别是为本教程创建了一个新的数据库用户。tutotal说要用TCRSSHIOHandler,但调色板上没有,所以我用TMySSHIOHandler代替,看起来是一样的 ScSSHClient中的端口如本教程中所述设置为22,但TMyConnection上的端口将仅接受3306(我测试时,22不会连接) 基本上,测试应用程序运行、连接到数据库并显示SQL如何检查与MySQL的连接是否使用SSH?,mysql,delphi,ssh,Mysql,Delphi,Ssh,我正在使用Delphi 2009中新安装的MyDac 10.1.3和Securebridge 9.2连接到一个远程MySQL数据库,该数据库托管在共享服务器(位于JustHostMe)上,他们声称允许SSH。我没有访问服务器本身的权限,因此无法运行任何管理类型的命令,只有SQL。我可以使用端口3306正常连接,但希望使用SSH进行连接 我遵循了教程,制作了我的私钥和公钥,将我的公钥传输到服务器,并使用cpanel对其进行授权,特别是为本教程创建了一个新的数据库用户。tutotal说要用TCRSS
SHOW STATUS
(我将其作为测试放入查询中)的结果
我的问题很简单,
如何检查连接是否使用SSH
请记住,我正在运行一个连接到共享服务器的Delphi应用程序,我没有管理员访问权限
我读过,但这似乎是假设我可以直接访问服务器
如果有人要求查看这个极简主义应用程序的代码,那么整个过程都很简单
unit U_frmMain;
// see https://www.devart.com/mydac/docs/ssh.htm
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScSSHClient, ScBridge, StdCtrls, Grids, DBGrids, DB, MemDS, DBAccess,
MyAccess, CRVio, CRSSLIOHandler, MySSLIOHandler, CRSSHIOHandler,
MySSHIOHandler;
type
TForm1 = class(TForm)
MyConnection1: TMyConnection;
MyQuery1: TMyQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
ScFileStorage1: TScFileStorage;
ScSSHClient1: TScSSHClient;
MySSHIOHandler1: TMySSHIOHandler;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MyQuery1.open;
end;
end.
这并不是那么容易,您必须在云主机上设置到mysql服务器的ssh隧道。您必须具有管理员权限才能设置此设置。在您链接的Devart文章中,他们展示了如何在windows服务器上执行此操作,但我猜JustHostMe将是一个linux box…mysql工作台,并在tcp over ssh上设置,看看您是否可以连接到myql服务器,您必须输入ssh主机名127.0.0.1,当然,您可以启动wireshark并查看密码是否被传输进来cleartext@whosrdaddy. 谢谢你,我在文章的第2部分中看到了设置窗口服务器的过程,但我认为只有在我没有使用securebridge,而是使用openssl的情况下,我才会这样做。JustHostMe声明服务器已准备好SSH,cpanel具有安装和验证公共证书的功能。这似乎表明管理员已经尽了自己的一份力?如果尝试在尚未为其设置的服务器上使用SSH隧道进行连接,会以纯文本方式进行连接,还是无法连接?这将是它是否工作的一个线索。隧道将在某个端口上发布(不是端口22,这将使您能够访问linux shell,而不是端口3306,因为这是标准的MySQL端口),我查看了JustHostMe文档,没有提到SSH隧道,因此假设这不是设置。您始终可以使用Putty之类的SSH客户端进行验证,或者如上所述使用Wireshark。这并不容易,您必须在云主机上设置一个到mysql服务器的SSH隧道。您必须具有管理员权限才能设置此设置。在您链接的Devart文章中,他们展示了如何在windows服务器上执行此操作,但我猜JustHostMe将是一个linux box…mysql工作台,并在tcp over ssh上设置,看看您是否可以连接到myql服务器,您必须输入ssh主机名127.0.0.1,当然,您可以启动wireshark并查看密码是否被传输进来cleartext@whosrdaddy. 谢谢你,我在文章的第2部分中看到了设置窗口服务器的过程,但我认为只有在我没有使用securebridge,而是使用openssl的情况下,我才会这样做。JustHostMe声明服务器已准备好SSH,cpanel具有安装和验证公共证书的功能。这似乎表明管理员已经尽了自己的一份力?如果尝试在尚未为其设置的服务器上使用SSH隧道进行连接,会以纯文本方式进行连接,还是无法连接?这将是它是否工作的一个线索。隧道将在某个端口上发布(不是端口22,这将使您能够访问linux shell,而不是端口3306,因为这是标准的MySQL端口),我查看了JustHostMe文档,没有提到SSH隧道,因此假设这不是设置。您可以始终使用SSH客户端(如Putty)进行验证,或者如上所述使用Wireshark。