質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • C#

    6285questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    1621questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

  • Raspberry Pi

    672questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • SSH

    501questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

VS2017(C#)コンソールアプリからraspberry piへのssh接続に関して

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 109

inupisu

score 3

 前提・実現したいこと

VS2017(C#)のコンソールアプリの中でssh.netライブラリを参照し,sshコマンドによってraspberry piにssh接続できるようにしたいです.

ここに質問の内容を詳しく書いてください。
コンソールアプリをVSで作成しました.プログラムの中でssh.netというライブラリを参照し,teratermなどのターミナルソフトを使わずに,raspberry piにプログラムからssh接続できるようにしたいです.VSは2017 言語はC#で,windowsは7です.raspberry piは3のmodelBを使用しており,osはraspbianです.VSが入ってるpcと,raspberry pi同じルータに無線でつながっています.インターネットにはつながっておらず,ローカル(会社内や学校内)で接続されています.teratermなどのソフトでは正常にssh接続ができます.プログラム内でエラーが発生してしまい,それを改善することがどうしてもできません.

 発生している問題・エラーメッセージ

System.Net.Sockets.SocketException: 'アクセス許可で禁じられた方法でソケットにアクセスしようとしました。'

 該当のソースコード

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;
            }
        }
    }
}

 試したこと

raspberry piでsshを無効にしてまた有効に戻すや,エラーメッセージをいろいろと調べましたが,初心者で知識不足ということもあり改善できませんでした.

 補足情報(FW/ツールのバージョンなど)

そもそもssh.netでraspberry piにリモート接続できるのかどうか調べても出てこなかったため,把握していない現状です... すごく的外れで意味の分からないことを言ってしまっているかもしれません.. これより先に進めず困っています.どなたか詳しい方,アドバイスいただけたら嬉しいです.よろしくお願いします.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • y_waiwai

    2018/06/20 15:38

    どこの行でエラーが出ますか?

    キャンセル

  • inupisu

    2018/06/20 16:33

    閲覧ありがとうございます. すみません,記載しておくべきでした.. エラーは 最後の throw ex; の部分で出ます.

    キャンセル

  • Naotos

    2018/06/22 13:56

    trycatchの範囲が広すぎるので細かくしてもらえますか?ssh.Connect();で発生しているのか確認してください。

    キャンセル

回答 1

0

ぱっとみー、コードの方は正常に見えます。

ラズパイではなく、他のサーバへそれで接続してみたらどうなるでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    Watson の speech to text を HTTP REST で呼び出す方法

    前提・実現したいこと 【IBM Watson音声認識のAPI呼び出し】 IBM Watson の HTTP REST API で speech to text の recogn

  • 解決済

    Linq Select 複数指定

    LinqのSelectで複数要素を指定する方法について 要素1~5がすべて空白のものをカウントする記述を教えてください (やりたい事のイメージとしては、下記の通りです。) va

  • 解決済

    ラズパイでGPIOの値を読み取りたい

    前提・実現したいこと ラズパイでGPIOの値を取得したいのですが、ファイルを実行しようとすると次のようなエラーが出ました。 発生している問題・エラーメッセージ /home/pi

  • 解決済

    Json.NETを使ってConoHaのAPIへネスト化されたJsonを送る方法について

    現在、諸事情でConoHaのAPIを使って契約しているオブジェクトストレージにファイルをアップロードするアプリを C#+WPFで作っています。 そしてJsonのリクエストを送るため

  • 解決済

    OpenCvSharp3で重心を求めたいです

    以下のように、ラベリングを実行するプログラムはできたのですが、ここから重心の座標や面積を求めるプログラムを作成したいです。どなたか、教えていただけますか? 最終的な目標としては

  • 解決済

    ラズパイ python3.5.1 インストール エラー

    ラズパイでpython3.5.1を入れようとしたのですが、 Raspberry PiでのPython 3.5環境構築 Downloading Python-3.5.1.ta

  • 解決済

    数秒単位で監視し特定のウインドウを開けないようにする

    数秒単位で監視し、特定のウインドウを開けないようにするプログラムを作ろうとしています。(visual studio2017で作成しています。C#コンソールアプリで作成しています。)

  • 解決済

    milkcocoaをインストールできない

    ラズベリーパイ3を用いて、milkcocoaを利用しようと考えています。 しかし、npm install milkcocoaと入力すると以下のようなエラーが出ます。 pi@

同じタグがついた質問を見る

  • C#

    6285questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    1621questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

  • Raspberry Pi

    672questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • SSH

    501questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。