Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

никто по 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
15-1337538834
64355443444-й
2012-05-20 22:33
2013.03.22
Не могу загрузить файл


15-1349857101
ТимоховД
2012-10-10 12:18
2013.03.22
Ключ условной компиляции


6-1257969182
Lamer6666
2009-11-11 22:53
2013.03.22
Как же выдрать нужный кусочем html кода.


15-1352233802
Юрий
2012-11-07 00:30
2013.03.22
С днем рождения ! 7 ноября 2012 среда


2-1340780940
aka
2012-06-27 11:09
2013.03.22
Удаления пробелов в строке.