Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Внизникто по SSH не соединялся? В частности, через cryptlib Найти похожие ветки
← →
AV © (2012-07-11 10:58) [0]Пишу как в примере
function TForm1.SSH_Client(Server, Userid, Pass: string): TCryptSession;
begin
result := TCryptSession.Create(CRYPT_SESSION_SSH);
with result do begin
ServerName := Server; { set hostname or IP address }
UserName := Userid; { set user identification }
Password := Pass; { set password }
end;
try
result.Activate; { establish SSH connection to server }
except
on E: ECryptError do
begin
mmo1.Lines.Add(E.Message);
FreeAndNil(result);
end;
end;
end;
Получаю: cryptSetAttribute: Data has not been initialised
последним что вызывается в адаптированном под delphi юнитеprocedure TCryptObject.SetAttribute(const attributeType: CRYPT_ATTRIBUTE_TYPE; const value: Integer = CRYPT_UNUSED);
var
err: Integer;
begin
err := cryptSetAttribute(CryptHandle, attributeType, value);
if err < 0 then // -11 в моем случае
raise ErrCodeTab[FindCode(err)].ex.Create(err, "cryptSetAttribute");
функция определена как
function cryptSetAttribute( const cryptHandle: CRYPT_HANDLE;
const attributeType: CRYPT_ATTRIBUTE_TYPE;
const value: Integer ): Integer;
{$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
, где cryptlibname = "cl32.dll"
собственно и есть сама dll, которую нагуглил
Что не так делаю?
------------------------------------------
Или можно как-то иначе по ssh соединится, покомандовать?
← →
AV © (2012-07-11 12:04) [1]первый вопрос снимается,
отключил EUREKALOG - заработало
EUREKA не дает проинициализироваться, видимо, чему -то там до конца
← →
AV © (2012-07-11 12:35) [2]все, заработало
Если кому надо было/будет по SSH линуксами покомандовать
1. отсюда http://cryptlib.sogot.de/delpas.html#Downloading
берем
DelphiCryptlib.pas
cryptlib.pas
cl32.dll
2.procedure TForm1.btn1Click(Sender: TObject);
var
SSH: TCryptSession;
// Data: PAnsiChar;
Data: array [0..255] of AnsiChar;
LenData: Integer;
BytePushed: Integer;
BytePoped: Integer;
begin
mmo1.Lines.Add("--------------"); // инициализация
cryptInit;
// SSH := SSH_Client("ip", "user", "pass"); // код выше
if SSH = nil then
Exit;
mmo1.Lines.Add( "Ok create SSH");
Sleep(1000);
mmo1.Lines.Add("------FlushData--------");
SSH.FlushData; // из доки понял, что обязателен вызов перед использованием PopData
mmo1.Lines.Add("------PopData--------");
Sleep(1000);
LenData := 255;
BytePoped := SSH.PopData(addr(Data), LenData);
mmo1.Lines.Add(Data); // тут приветствие читаем
mmo1.Lines.Add(IntToStr(BytePoped));
mmo1.Lines.Add("------PushData--------"); // спрашиваем дату у сервера
Data := "date"#13;
LenData := 5;
SSH.PushData(addr(Data), LenData, BytePushed);
mmo1.Lines.Add(IntToStr(BytePushed));
mmo1.Lines.Add("------FlushData--------"); // читаем дату у сервера
SSH.FlushData;
mmo1.Lines.Add("------PopData--------");
Sleep(1000);
LenData := 255;
BytePoped := SSH.PopData(addr(Data), LenData);
mmo1.Lines.Add(Data);
mmo1.Lines.Add(IntToStr(BytePoped));
FreeAndNil(SSH); // закругляемся
cryptEnd;
mmo1.Lines.Add("--------------");
end;
← →
Сергей М. © (2012-07-12 15:54) [3]
> по SSH линуксами покомандовать
чей-то только линуксами ?
меняем шило
Data := "date"#13;
LenData := 5;
на мыло
Data := "date /t"#13#10;
LenData := 9;
и командуем виндами
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.076 c