SSH の使用法
%Net.SSH パッケージは、SSH (Secure ShellOpens in a new tab) 通信のサポートを提供します。この章では、このパッケージに含まれているクラスについて簡単に説明します。
SSH セッションの作成
%Net.SSH.SessionOpens in a new tab は SSH セッションを表します。このクラスを使用するには、以下の手順を実行します。
-
クラスのインスタンスを作成します。
-
Connect() インスタンスのメソッドを使用して、サーバに接続します。
-
AuthenticateWithKeyPair() または AuthenticateWithUsername() のどちらかを使用して、サーバへの認証を行います。詳細は、%Net.SSH.SessionOpens in a new tab のクラス・リファレンスを参照してください。
-
%Net.SSH.SessionOpens in a new tab のその他のメソッドを使用して、リモート・システムとの間での単一ファイルの SCP (Secure Copy) 操作の実行、リモート・コマンドの実行、TCP トラフィックのトンネル、または SFTP 操作の実行を行います。クラス・リファレンスの %Net.SSH.SessionOpens in a new tab を参照してください。
例えば、OpenSFTP を使用して、SFTP 操作のセッションを使用します。このメソッドは、SFTP 操作に使用できる %Net.SSH.SFTPOpens in a new tab のインスタンスを参照で返します。次のセクションに示した用例を参照してください。
これらのクラスを使用できるサポート・プラットフォームの詳細は、%Net.SSH.SessionOpens in a new tab および %Net.SSH.SFTPOpens in a new tab のクラス・リファレンスを参照してください。
例 : SFTP 経由でのファイルのリスト
次のメソッドは、SFTP を経由してサーバ上のファイルのリストを書き込む方法を示しています。
Method SFTPDir(ftpserver, username, password) As %Status
{
set ssh = ##class(%Net.SSH.Session).%New()
do ssh.Connect(ftpserver)
do ssh.AuthenticateWithUsername(username,password)
//open an SFTP session and get that returned by reference
do ssh.OpenSFTP(.sftp)
//get a list of files
do sftp.Dir(".",.files)
set i=$ORDER(files(""))
while i'="" {
write $listget(files(i),1),!
set i=$ORDER(files(i))
}
quit $$$OK
}
その他の例
その他の SSH の例については、スタジオで %Net.SSH.SessionOpens in a new tab を開いて、このクラスの TestExecute() メソッドと TestForwardPort) メソッドを参照してください。