VS2017(C#) コンソールアプリでraspberry piへssh接続に関しての質問です.
VS2017(C#)とRaspberry pi3 ModelBを使って,プログラム内でssh接続をしようとしています.
VS2017のコンソールアプリの中で,SshNetライブラリを参照し,同じルータに無線でつながったraspberry piへssh接続をしたいという感じです.
プログラムはこのようになっております.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Renci.SshNet;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
try
{
// 接続先のホスト名またはIPアドレス
var hostNameOrIpAddr = "xxx.xxx.x.x";
// 接続先のポート番号
var portNo = 22;
// ログインユーザー名
var userName = "pi";
// ログインパスワード
var passWord = "xxxxxxxx";
// コネクション情報
ConnectionInfo info = new ConnectionInfo(hostNameOrIpAddr, portNo, userName,
new AuthenticationMethod[] {
new PasswordAuthenticationMethod(userName, passWord)
/* PrivateKeyAuthenticationMethod("キーの場所")を指定することでssh-key認証にも対応しています */
}
);
// クライアント作成
SshClient ssh = new SshClient(info);
// 接続開始
ssh.Connect();
if (ssh.IsConnected)
{
// 接続に成功した(接続状態である)
Console.WriteLine("[OK] SSH Connection succeeded!!");
}
else
{
// 接続に失敗した(未接続状態である)
Console.WriteLine("[NG] SSH Connection failed!!");
return;
}
// 接続終了
ssh.Disconnect();
}
catch (Exception ex)
{
// エラー発生時
Console.WriteLine(ex);
throw ex;
}
}
}
}
そして,現状 System.Exception{System.Net.Sockets.SocketException}
対象のコンピュータによって拒否されたため,接続できませんでした
というエラーメッセージが表示されています.
raspberry piとVSを扱っている別のpcはそれぞれ同じルータに無線で接続されています.
また,teratermなどのターミナルからはssh接続が可能です.なお,pcはwindows7です.
いろいろと自分なりに調べて改善しようといたしましたが,初心者で知識不足ということもあり
改善することができませんでした.
どなたか詳しい方,お知恵をお貸ししていただきたいです.
よろしくお願いいたします.